コンテンツにスキップ

Linux系@管理ユーティリティ

01. apk

apkとは

Alpineリポジトリのパッケージを管理する。


add

Alpineリポジトリからパッケージをインストールする。

常に最新をインストールする仕様になっている。

もし、特定のバージョンをインストールしたい場合や、Alpineリポジトリ以外に置かれているパッケージは、以下のようにインストールする。

# wgetコマンドで一度ファイルを取得する
$ wget <該当のバージョンのalpineパッケージ>.apk

# 取得したファイルからパッケージをインストールする
$ apk add --allow-untrusted <パッケージ名>.apk


02. brew

brewとは

Linuxで使用できるパッケージを管理する。

最新バージョンしか管理できず、以前のバージョンを管理できない。


autoremove

パッケージの依存先としてインストールされたパッケージのうち、現在使用されていないものをアンイントールする。

事前に--dry-runオプションを有効化し、対象のパッケージを確認すると良い。

$ brew autoremove --dry-run

$ brew autoremove


cleanup

パッケージの旧バージョンのキャッシュを削除する。

$ brew cleanup


doctor

brewの設定に不備がないかを検証する。

$ brew doctor
Your system is ready to brew.

# パッケージとエイリアスが正しく紐づいていない場合
$ brew doctor
Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  <該当のパッケージ名>
  ...


install

パッケージをインストールする。

# Intel Macの場合
$ brew install <パッケージ名>

$ brew install <パッケージ名>@<バージョンタグ>


brewによって~/usr/local/Cellarディレクトリにインストールされたパッケージと、~/usr/local/binディレクトリに作成されたパッケージへのエイリアスを紐付ける。

$ brew link <パッケージ名>


update

brew本体をアップグレードする。

$ brew update


upgrade

brew本体とパッケージの両方をアップグレードする。

$ brew upgrade


03. asdf

asdfとは

Linuxで使用できるパッケージを管理する。

また、異なるバージョンを同時に管理できる。

ただ基本的には、開発時に複数のバージョンが並行して必要になるようなパッケージしか提供していない。


.tool-versionファイル

.tool-versionファイルをリポジトリのルートディレクトリに置いておく必要がある。

異なる開発者がリポジトリ直下でパッケージをインストールした時に、特定のバージョンをインストールを強制できる。

# .tool-versionsファイル

foo-plugin <バージョンタグ>

もし.tool-versionファイルがないと、asdfでインストールしたコマンドで以下のようなエラーになってしまう。

# asdfでSOPSをインストールしたとする。
$ sops -e plain.yaml

No version is set for command sops
Consider adding one of the following versions in your config file at
sops <バージョン>


セットアップ

▼ brewリポジトリから

brewコマンドを使用してインストールする場合、~/.zshrcファイルを編集する必要がある。

$ brew install asdf

▼ GitHubリポジトリから

$ git clone --depth 1 https://github.com/asdf-vm/asdf.git ~/.asdf

$ echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc

# これはセットアップ環境によっては必要ないかも
$ export ASDF_DIR=~/.asdf

$ source ~/.bashrc


current

現在有効になっているバージョンを確認する。

$ asdf current

golang          1.19.13         <使用中の.tool-versionsファイルのパス>
helm            3.13.0          <使用中の.tool-versionsファイルのパス>
helmfile        ______          <使用中の.tool-versionsファイルのパス>
kubectl         1.24.0          <使用中の.tool-versionsファイルのパス>
...


global

ホームディレクトリ (~/) に.tool-versionファイルを作成する。

$ asdf global <プラグイン名> 1.0.0

# ファイルが作成されたことを確認する。
$ cat ~/.tool-versions

foo 1.0.0
bar 1.0.0


list

インストールされているパッケージで使用できるバージョンの一覧を取得する。

$ asdf list all <プラグイン名>


local

現在のディレクトリに、.tool-versionファイルを作成する。

事前にasdf installコマンドでプラグインの特定のバージョンをインストールしておく必要がある。

$ asdf local <プラグイン名> 1.0.0

# ファイルが作成されたことを確認する。
$ cat .tool-versions

foo 1.0.0
bar 1.0.0


plugin

# 現在インストールされているプラグインを取得する。
$ asdf plugin list


# 登録しているプラグインを削除する。
$ asdf plugin remove <プラグイン名>
# プラグインのURLを調べる。
$ asdf plugin list all | grep <プラグイン名>


# プラグインをローカルマシンに登録する。
# まだインストールされていない。
$ asdf plugin add <プラグイン名> <URL>

# URLの指定がなくとも良い
$ asdf plugin add <プラグイン名>


install

# プラグインをローカルマシンに登録する。
# まだインストールされていない。
$ asdf plugin add <プラグイン名> <URL>


# 登録済みのプラグインをインストールする。
$ asdf install <プラグイン名> 1.0.0

Downloading <プラグイン名> from <URL>


# インストールされたことを確認できる。
$ asdf plugin list

もし、.tool-versionファイルを作成してある場合には、プラグイン名とバージョンが不要になる。

$ asdf install

エディタを使用している場合は、新しくインストールしたバイナリに切り替える。


uninstall

プラグインをアンインストールする。

$ asdf uninstall <プラグイン名> 1.0.0