1. 基本
もっとも基本となる形は
pacman <オペレーション> [...]
だそうです。
$ 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}' を使うことでオプションを一覧できます
2. データベース更新
検索が「pacman -Fs ファイル名」らしい(後で、データベースの検索らしいことが判明)ので、やってみると
$ pacman -Fs net-tools
警告: database file for 'core' does not exist (use '-Fy' to download)
警告: database file for 'extra' does not exist (use '-Fy' to download)
警告: database file for 'community' does not exist (use '-Fy' to download)
警告: database file for 'multilib' does not exist (use '-Fy' to download)
なんだかデータベースをダウンロードするなり、更新するなりしなければならないらしい・・・。
$ pacman -Fy
:: パッケージデータベースの同期中...
core 1397.9 KiB 534K/s 00:03 [############################################] 100%
extra 8.6 MiB 929K/s 00:10 [############################################] 100%
community 22.5 MiB 991K/s 00:23 [############################################] 100%
multilib 291.9 KiB 1042K/s 00:00 [############################################] 100%
3. 検索
pacman -F パッケージ名 ← データベースを検索
pacman -Ss パッケージ名 ← リモートのリポジトリを検索
pacman -Qs パッケージ名 ← インストール済のパッケージを検索
いずれも「パッケージ名」は一部分でも可能です。
実際にやってみます。
$ pacman -Fs ifconfig
core/net-tools 1.60.20180212git-1
usr/bin/ifconfig
なるほど、「『ifconfig』は『core/net-tools』の 中にあります」ちゅうことですね。
ただし、このオプション、覚えにくいです。
「pacman」あるところ、「pamac」が存在し、「pamac」は、検索であれば、コマンドラインからも使えます。
pamac search パッケージ名
こっちの方が、スペルが長いようでいて、覚えやすいです。
4. パッケージインストール
pacman -S パッケージ名
だそうな。
実際にやってみます。
$ pacman -S net-tools
:: Some packages should be upgraded first...
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (2) archlinux-keyring-20190123-2 manjaro-system-20190124-3
合計ダウンロード容量: 0.67 MiB
合計インストール容量: 0.95 MiB
最終的なアップグレード容量: 0.09 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
archlinux-keyring-20190123-2-any 685.1 KiB 268K/s 00:03 [############################################] 100%
manjaro-system-20190124-3-any 4.4 KiB 0.00B/s 00:00 [############################################] 100%
(2/2) キーリングのキーを確認 [############################################] 100%
(2/2) パッケージの整合性をチェック [############################################] 100%
(2/2) パッケージファイルのロード [############################################] 100%
(2/2) ファイルの衝突をチェック [############################################] 100%
(2/2) 空き容量を確認 [############################################] 100%
:: パッケージの変更を処理しています...
(1/2) 更新 archlinux-keyring [############################################] 100%
==> archlinux.gpg からキーを追加...
==> キーリングの信頼されたキーに署名...
-> キーに署名 DDB867B92AA789C165EEFA799B729B06A680C281...
・・・ 略 ・・・
-> キーに署名 D8AFDDA07A5B6EDFA7D8CCDAD6D055F927843F1C...
==> 所有者信頼値をインポート...
gpg: inserting ownertrust of 4
==> キーリングの破棄されたキーを無効化...
-> キー 7FA647CD89891DEDC060287BB9113D1ED21E1A55 を無効化...
・・・ 略 ・・・
-> キー 8840BD07FC24CB7CE394A07CCF7037A4F27FB7DA を無効化...
==> 信用データベースを更新...
gpg: 次回の信用データベース検査は、2019-06-02です
(2/2) 更新 manjaro-system [############################################] 100%
:: トランザクション後のフックを実行...
(1/1) Arming ConditionNeedsUpdate...
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (1) net-tools-1.60.20180212git-1
合計ダウンロード容量: 0.13 MiB
合計インストール容量: 0.50 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
net-tools-1.60.20180212git-1-x86_64 128.8 KiB 189K/s 00:01 [############################################] 100%
(1/1) キーリングのキーを確認 [############################################] 100%
(1/1) パッケージの整合性をチェック [############################################] 100%
(1/1) パッケージファイルのロード [############################################] 100%
(1/1) ファイルの衝突をチェック [############################################] 100%
(1/1) 空き容量を確認 [############################################] 100%
:: パッケージの変更を処理しています...
(1/1) インストール net-tools [############################################] 100%
:: トランザクション後のフックを実行...
(1/1) Arming ConditionNeedsUpdate...
てな感じで、無事インストールでけたようです。
5. 削除 yay
削除は、「How to Install and Remove Packages in Arch Linux」によれば、「pacman」でないのである。
そういえば、今日(2021年9月3日)まで、削除したことなかったな・・・。
参考サイトの通りにするならば
yay -R パッケージ名
なのだ。
しかもこれ、「sudo」や「root」ユーザ権限でやっちゃいけなくれ。
実際に、「EndeavourOS 2021.08.27」で「code(Visual Studio Code)」を「root」ユーザ権限で消そうとしたら
$ yay -R code
-> yay を root や sudo で実行しないでください。
てなこと言われちゃいましたので、ログインユーザでやり直し。
$ yay -R code
[sudo] hogehoge のパスワード:
依存関係を確認しています...
パッケージ (1) 古いバージョン 最終的な変化
code 1.58.0-1 -87.22 MiB
合計削除容量: 87.22 MiB
:: 以上のパッケージを削除しますか? [Y/n] y
:: パッケージの変更を処理しています...
(1/1) 削除 code [--------------------------------------] 100%
:: トランザクション後のフックを実行...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating the desktop file MIME type cache...
なるほど、コマンド自体が、「sudo」を使用するのであるな。
まぁ、無事に削除できたようです。
6. 削除 pacman
前項は、書いた当時のわたしの勉強不足で、「pacman」でも削除できます。
削除の基本は
pacman -R パッケージ名
依存パッケージを同時に削除するには
pacman -Rs パッケージ名
さらに
pacman -Rsc パッケージ名
ちゅうのもありますが、最後は何まで削除するのは忘れちゃいました。
削除途中で
以上のパッケージを削除しますか? [Y/n]
の問い合わせには Enter で答えます。
7. アップグレード
アップグレードは、
pacman -Syu
2022年3月7日、「Garuda Linux 211129 WayFire」で、上記を実行すると
:: wlroots (0.15.1-3) をインストールすると 'wlroots<0.15' が破壊され wayfire の依存関係が壊れます
と言われて、更新できない。
更新できないと、インストールできないパッケージがあって、困ったりします。
「wlroots」だけ、更新しないようにします。
vi /etc/pacman.conf
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
# IgnorePkg =
#IgnoreGroup =
25行目を下記のように変えます。
IgnorePkg = wlroots
これで、更新できるようになります。
ちと気をつけたいのが
pacman -Fy
pacman -Syu
を頻繁に行うと、ネットワークの使用量がぐんと上がるし、トラフィックにも影響が出るかもしれません。
どうも、「ArchLinux」系の管理者(?開発者?)たちは、ネットワークのリソースが無尽蔵にあるかと思っているようです。
数時間くらい後に、上掲のコマンドを実行すると、「1GB」超のパッケージをダウンロードしにいって、それらをインストールするようです。
どっかのブラウザと一緒ですね。
何かのパッケージをリリースるのが数10分とか数時間おきになっているようです。
でまた、それらをインストールするのが、全とっかえのように見えます。
もう少し、気を落ち着けてくれないものでしょうか?