apt
なり yum
なりのOSに付属のパッケージ管理システムがあると、インストールす
るコマンドのバージョン管理ができて便利です。
しかしながら、GitHubReleaseだけに公開されている便利なコマンドなどのバージョン管 理は各人に委ねられている状態だと思います。
たとえば以下。
cd /tmp
wget https://github.com/jiro4989/nimjson/releases/download/v1.2.8/nimjson_linux.tar.gz
tar xzf nimjson_linux.tar.gz
mkdir -p ~/bin
install -m 0755 ./nimjson_linux/bin/nimjson ~/bin/
このように手動インストールしたコマンド類をアップグレードしたい場合、 上記と同じような手順で再度インストールし直す必要があります。
この問題を解決することが、このコマンドのモチベーションです。
最終的には、様々なGitHubReleaseから取得したコマンドを、統一的なインタフェースで 管理し、一括アップグレード等を可能にすることをゴールとします。
最初に init
サブコマンドで設定ファイルを作成します。
その後 install
サブコマンドでGitHubのリリースURLを渡すと、生成された設定ファイ
ルに記載のパスにインストールされます。初期設定では ~/relma/bin
にシンボリック
リンクが作成されます。
それらの設定ファイルの実体は ~/relma/releases/<owner>/<repo>
に保存されます。
コマンドとしては以下の実行をします。
relma init
relma install https://github.com/jiro4989/nimjson/releases/download/v1.2.8/nimjson_linux.tar.gz
インストールされたコマンドとパッケージの情報は ~/relma/releases/<owner>/<repo>
に
保存されます。バージョンアップの際はこのパッケージディレクトリ配下のJSONを元に実
行されます。
また、 relma install
をすると ~/relma/releases.json
にインストールした
Releaseの情報がすべて保存されます。
このJSONを使ってReleaseを一括インストールすることが可能です。
以下のコマンドで、 releases.json
からリリースをインストールできます。
relma install -f releases.json
インストールしたコマンドをすべてアップグレードしたい場合は、以下のコマンドを実行 します。
relma update
relma upgrade --yes
特定のパッケージのみ最新版にアップグレードする際は以下のコマンドを実行します。
relma upgrade --yes <owner/repo>
# ex:
# relma upgrade --yes jiro4989/nimjson
これは relma upgrade <owner>/<repo>
というルールに従っています。
<owner>/<repo>
の確認は以下のコマンドを入力します。
インストール済みのパッケージ一覧の確認は以下のコマンドを実行します。
relma list
インストールしたパッケージをアンインストールする場合は、以下のコマンドを実行しま す。
relma uninstall <owner/repo>
# ex:
# relma upgrade --yes jiro4989/nimjson
Goコンパイラがインストールされているなら、以下のコマンドでインストールできます。
ただし、その場合は relma --version
で出力されるバージョン情報が固定値になります。
go install github.com/jiro4989/relma@latest
また、実行可能ファイルを GitHub Releases からダウンロードできます。