Solist Work Blog

List of all blog posts

これだけ覚えておけばいいArchLinuxのパッケージ管理

不具合があった場合の対処


これだけ覚えておけばいい。

pacman -Syu ; paccache -ruk0

しておくと 3 世代分のパッケージがずっと保存されていくので 例えば、最新の sqlite が起動しなくて困った場合は1 以下のようにすればよいです。 まず、3世代のパッケージが保存されているキャッシュフォルダに移動します。

pacmanのキャッシュディレクトリに移動

cd /var/cache/pacman/pkg/

ls | grep sqlite

sqlite-3.14.2-1-x86_64.pkg.tar.xz
sqlite-3.15.1-2-x86_64.pkg.tar.xz
sqlite-3.15.2-1-x86_64.pkg.tar.xz

今回はsqlite-3.15.2-1-x86_64.pkg.tar.xzにバグがあったと仮定して進めます。 sqlite-3.15.1-2-x86_64.pkg.tar.xz にダウングレードして

pacman -U sqlite-3.15.1-2-x86_64.pkg.tar.xz

不具合がなおるまでアップデート対象からsqliteを外します。

vim /etc/pacman.conf

IgnorePkg = sqlite

としておけばアップデート対象から sqlite が弾かれる。 不具合がなおったら IgnorePkg = sqlite を消すかコメントアウトしておけばよいでしょう。 実際にここまで困った事態になったことはありませんが。

それ以外にも覚えて損はないもの


依存していて他から使われていないパッケージを消す

pacman -Rs perl

pacman でインストールしたパッケージリストを作る

pacman -Qqen > pkglist.txt

yaourt でインストールしたパッケージリストを作る

pacman -Qqem > yaourtlist.txt

インストールされたパッケージの実態ファイルを表示する

pacman -Ql zlib

パッケージの実態ファイルを表示

ファイルからパッケージを特定する /etc/pacman.confを利用しているパッケージが何かわかります。

pacman -Qo /etc/pacman.conf

パッケージをファイルから特定する

パッケージの依存関係を表示する

pactree git

パッケージの依存関係を表示

利用したいソフトウェアからパッケージ名を見つける

pkgfile firefox

.zshrc に以下を書いておくと

if [ -f /usr/share/doc/pkgfile/command-not-found.zsh ]; then
    source /usr/share/doc/pkgfile/command-not-found.zsh
fi

conkyと打ち込んでインストールされていなかった時 どのパッケージにconkyが入っているか教えてくれる。

パッケージ名を探す


  1. 実際にそんな事態にはこの一年なっていない [return]