Arch Linuxのパッケージをパッケージリストで管理する
この記事では、Arch Linuxのインストール済みパッケージリストを作成して管理・一括インストールする方法を紹介します。ここでは、AURヘルパーとして yay を使用している前提で書いています。 paru 等、他のAURヘルパーを使用している場合は適宜読み替えてください。
パッケージリストの作成
明示的にインストールしたパッケージの名前を出力し、 pkglist.txt ファイルに保存します。
yay -Qeq > pkglist.txt
解説
-Q,--query: ローカルのパッケージデータベースに問い合わせ、インストール済みのパッケージを検索します。-e,--explict: 明示的にインストールしたパッケージのみ検索します。-q,--quiet: パッケージの名前のみを出力します。
AUR等、外部からインストールしたものを分割する
公式リポジトリからインストールしたパッケージと、そうでないもの(AURや自作パッケージなど)を分割して管理したいかもしれません。その場合は以下の方法で作成することができます。
yay -Qeqn > pkglist.txt # 公式リポジトリからインストールしたもの
yay -Qeqm > pkglist-foreign.txt # その他
解説
-n,--native: 公式リポジトリからインストールしたパッケージのみ検索します。-m,--foreign: 公式パッケージ以外からインストールしたパッケージのみ検索します。
dotfilesで管理
上記で作成したパッケージリストは、手持ちのdotfilesリポジトリに移動して管理すると楽です。git diff 等で差分の確認も容易にできます。
一括インストール
パッケージリストに記載されているパッケージを一括でインストールする場合は次のように実行します。
yay -S --needed - < pkglist.txt
解説
-S,--sync: パッケージをインストールします。--needed: 既に最新のパッケージは再インストールしないようにします。pacmanやyayの引数にパッケージ名ではなく-を与えると、標準入力から読み込んだ行をパッケージ名と解釈します。