masablog

Keep it simple, stupid

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

tech

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


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

pacman -Syu ; paccache -r

しておくと 3 世代分のパッケージがずっと保存されていくから
例えば、最新の sqlite が起動しなくて困った場合は1

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.1-2-x86_64.pkg.tar.xz にダウングレードして

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

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

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

どのパッケージでインストールされたかファイルから探す

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]

9 Nov 2016 #ArchLinux #linux

Related links
  • phpmyadminをdockerで使う
  • Ansible の handlers で複数の処理がしたい
  • Makefile で dotfiles を作ろう
  • ansible を快適にするコマンドを作る
  • systemd-nspawn で Centos と Debian コンテナを作る
  • github のリポジトリを作って作業をはじめるコマンド
  • markdown で全てのドキュメントを書くには?
  • linux で新しいことをやる意欲を削がないために必要なこと
  • docker ではなく systemd-nspawn で作る web 開発環境
  • emacs25.1 の tramp が快適