ArchLinuxでの不要パッケージの削除について
さてさて、UbuntuからArchLinuxに乗り換えてみて、ふと気が付きました。
そう言えば、不要パッケージの削除ってどうやるんだっけ?
Ubuntu系(elementaryOS、ZorinOSなど)では「sudo apt autoremove」で、お世話になりました。
それではArchLinuxでは何かpacmanのコマンドにオプションが用意されてるのかな?
まずはpacman -hでヘルプを見ます。
%: >>>_ pacman -h
使用方法: pacman <オペレーション> [...]
オペレーション:
pacman {-h --help}
pacman {-V --version}
pacman {-D --database} <オプション> <パッケージ>
pacman {-F --files} [オプション] [ファイル]
pacman {-Q --query} [オプション] [パッケージ]
pacman {-R --remove} [オプション] <パッケージ>
pacman {-S --sync} [オプション] [パッケージ]
pacman {-T --deptest} [オプション] [パッケージ]
pacman {-U --upgrade} [オプション] <ファイル>
オペレーションと一緒に 'pacman {-h --help}' を使うことでオプションを一覧できます
ふむふむ、pacman -R -hとしてみますかね。
%: >>>_ pacman -R -h
osmaniax@osmaniax
使用方法: pacman {-R --remove} [オプション] <パッケージ>
オプション:
-b, --dbpath <path> データベースのパスを指定
-c, --cascade 指定したパッケージとそのパッケージに依存している全てのパッケージを削除
-d, --nodeps 依存バージョンチェックをスキップ (-dd で全てのチェックをスキップ)
-n, --nosave 設定ファイルを削除
-p, --print 操作を実行するかわりに対象を表示する
-r, --root <path> インストールのルートを指定
-s, --recursive 不要な依存関係を削除
(-ss で明示的にインストールした依存関係も削除)
-u, --unneeded 不要なパッケージを削除
-v, --verbose 詳細な情報を出力する
--arch <arch> アーキテクチャを指定
--assume-installed <package=version>
依存関係を満たすための仮想パッケージを追加
--cachedir <dir> パッケージキャッシュのディレクトリを指定
--color <when> 出力をカラーにする
--config <path> 設定ファイルを指定
--confirm 毎回確認を行います
--dbonly データベースエントリだけを修正してパッケージファイルを触らない
--debug デバッグメッセージを表示
--disable-download-timeout
ダウンロード時のタイムアウトを無効化する
--gpgdir <path> GnuPG のホームディレクトリを指定
--hookdir <dir> フックのディレクトリを指定
--logfile <path> ログファイルを指定
--noconfirm 確認を行わない
--noprogressbar ファイルのダウンロード中にプログレスバーを表示しない
--noscriptlet インストールスクリプトレットが存在する場合それを実行しない
--print-format <string>
対象を表示する形式を指定する
--sysroot マウントされたゲストシステムを操作する (root のみ)
ふむふむ、出てきましたね、おそらくイメージに近いのは、pacman -R -u で不要なパッケージの削除ですかね?
%: >>>_ sudo pacman -R -u
エラー: 対象が指定されていません (-h を使ってヘルプを見て下さい)
うそーん。
ここで煮詰まりました。ってことで本家ArchLinuxのヘルプを確認したら内容が充実していました。
ヘルプの以下が該当してますかね。
使用していないパッケージの削除 (孤立したパッケージ)
再帰的に孤立したパッケージ(とその設定ファイル)を削除するには:
# pacman -Rns $(pacman -Qtdq)
はい、というわけで、ArchLinuxで不要なパッケージの削除がバッチリできました。
しかし、少し長い。
上記を覚えるのは面倒なので、エイリアスでも組みましょうか。
こんな感じで、.zshrcに組み込めばOKでしょう。
alias pacmanautoremove="sudo pacman -Rns $(pacman -Qtdq)"
何かの役に立てれば幸いです。
それではHappyLinuxライフを!