Alecriar Studioの中の人の技術メモ

横浜の個人事業主が日々の技術的な情報をつづります

AURヘルパー pikaur

Arch Linuxは基本的なパッケージは公式リポジトリで配布していますが、それとは別にユーザコミュニティが自主的に配布・配布しているものもあります。それがArch User Repository(AUR)です。

AURを手元のArch Linuxで使用するためには、本来ならばGitを使ってローカルにクローンをダウンロードし、パッケージを展開してPKGBUILDを編集し、makepkgでパッケージを作成する必要があります。しかし毎回これを手動でやるのは骨が折れます。これらの作業をある程度自動化し、AURパッケージのダウンロードからインストールまでを一手に面倒をみてくれるのがAURヘルパーと呼ばれるツールです。

AURヘルパーにはいくつか種類があり、それぞれの特徴は以下のリストによくまとまっています。

https://wiki.archlinux.org/index.php/AUR_helpers

その一部を抜粋したものが以下の表です。

f:id:alecriarstudio:20191116193301p:plain
AURヘルパー

Pacman wrappers」はpacman互換という意味です。コマンド体系がほぼpacman準拠となっており、pacmanと同じように違和感なくパッケージ管理が可能になります。

どのAURヘルパーを使用するかは好みの問題ですが、筆者はこの中から pikaur を選択しました。それほどの根拠はありませんが、少なくともパッケージ評価としてはオールグリーンで問題が少なそうなところ、Pythonで書かれていることが理由になります。

また、備考欄に「dynamic users」と書かれていますが、これは pikaur のみに備わる特徴で、systemdの機能である動的ユーザーに対応しています。これは /etc/passwd に存在しないユーザを動的に生成するもので、この機能のおかげで本来ならばroot権限でパッケージの管理を行わなければならないところを、 pikaur は一般ユーザ権限のままほとんどのことができてしまいます。これは地味に便利な機能です。

pikaur のインストール

前置きが長くなりましたが、 pikaur のインストール方法です。

まず、システムにインストールされていなければ base-devel と git を先にインストールします。

$ sudo pacman -S --needed base-devel git

AURに存在するパッケージは pacman からはインストールできません。システムにAURヘルパーが存在しない場合、ひと手間が必要です。pikaur 自身もまたAURパッケージなので、初回は以下の手順でインストールします。

$ git clone https://aur.archlinux.org/pikaur.git
$ cd pikaur
$ makepkg -fsri

pikaur が無事にインストールされた後は、AURパッケージはすべて pikaur で管理できるようになります。 よく使用する代表的な使用方法を列挙します。

パッケージのアップグレード

$ pikaur -Syu

公式リポジトリあるいはAURリポジトリからパッケージの検索

$ pikaur -Ss [検索したいパッケージ名]

インストールされたパッケージの検索

$ pikaur -Qs [検索したいパッケージ名]

孤児パッケージの表示

検索するには以下のようにします。

$ pikaur -Qdt

同時に削除するには以下のように使います。

$ pikaur -Rs $(pikaur -Qdtq)

パッケージのインストール

pikaur を含むいずれかのAURヘルパーをインストールしてしまえば、その後は以下のコマンドでパッケージをインストールできます。

$ pikaur -S [パッケージ名]

パッケージの削除

指定したパッケージのみを削除するには以下のようにします。

$ pikaur -R [パッケージ名]

指定したパッケージと同時に依存するパッケージをも削除するには以下のようにします。

$ pikaur -Rs [パッケージ名]

おわりに

以上、pikaur の使用方法自体は pacman とほぼ同じことがおわかりいただけたと思います。違いがあるとすれば、pacman の場合は必ず sudo による権限の昇格が必要でしたが、pikaur は必要がないことです。このおかげで少しだけコマンド行が短くなるという恩恵があります。

pikaur はマイナーではありますがたいへん便利なAURヘルパーなのでぜひ試してみてください。