kenkovlog

Haskell, Python, Vim, ...

Arch Linux でのパッケージのインストールについて

新しくArch Linux をインストールした時に、以前使っていたパッケージ達を
そのままインストールしたい場合が多いかと思います。
その時に使えるコマンドについてです。

pacman でインストールされているパッケージを表示するには

$ pacman -Q

を用います。
ただし、このコマンドだけではsync したデータベースからインストールしたパッケージの他に、AUR などからインストールしたパッケージも表示されてしまいます。

AUR など、sync したデータベース以外からインストールしたパッケージを表示するには

$ pacman -Qm

を使います。

また、これら二つの差分を表示するには

$ pacman -Qq > allPackages
$ pacman -Qmq > notInSync
$ diff allPackages notInSync  | grep '^<' | cut -c 3- > syncOnly

上のコマンドの最後の行を行えばよいです。
ここでは、バージョンなどの情報を表示しないため、-q オプションを付けました。

pacman に上のdiff をとるコマンドと同等のオプションがあるかもしれませんが、
調べても分かりませんでしたので、今回はdiff を使いました。

さて、これが出来たらsync したデータベースからインストールするには

$ sudo pacman -S `cat syncOnly` --needed --noconfirm

を行えばよいです。