さてさて、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ライフを!