はい、承知いたしました。Arch Linuxユーザー向けに、AURヘルパーであるyayの導入方法から基本的な使い方までを詳細に解説する記事を作成します。約5000語での記述を目指し、記事本文を直接表示します。
Arch Linuxユーザー必見!yay(AURヘルパー)の導入と基本操作
Arch Linuxはそのシンプルさ、最新性、そして何よりもカスタマイズ性の高さから、多くのLinuxユーザーに愛されています。最小限のシステムからスタートし、必要なソフトウェアだけを自分で選択・構築していくその哲学は、まさに「DIY精神」を体現しています。
しかし、Arch Linuxを使いこなす上で避けて通れない、そして非常に強力な仕組みが「AUR(Arch User Repository)」です。そして、そのAURをより手軽に、そして安全に利用するための強力なツールが「AURヘルパー」であり、中でも最も人気があり広く使われているのが「yay」です。
この記事では、Arch LinuxユーザーがAURを理解し、yayを導入して自在にソフトウェアを管理できるようになることを目指します。AURの仕組みからyayの導入方法、そして日々のパッケージ管理に役立つ基本的なコマンド操作まで、詳しく解説していきます。
1. はじめに:Arch Linuxとパッケージ管理の特殊性
Arch Linuxのパッケージ管理は、pacmanというコマンドを中心に行われます。公式リポジトリには、多くの基本的なソフトウェアや人気のあるアプリケーションが収録されており、pacman -S <パッケージ名>で簡単にインストールできます。ローリングリリースモデルのおかげで、これらのパッケージは常に最新に近い状態に保たれています。
しかし、世の中には公式リポジトリだけではカバーしきれない、非常に多くのソフトウェアが存在します。特定のニッチなツール、最新の開発版、カスタムビルドが必要なもの、あるいはまだ公式リポジトリに取り込まれていない新しいアプリケーションなどです。
ここで登場するのが、AUR (Arch User Repository) です。AURは、ユーザーが作成・共有するPKGBUILDと呼ばれるスクリプトの集合体です。PKGBUILDには、ソースコードの取得方法、ビルド方法、インストール方法などが記述されており、これを利用することで、公式リポジトリにはないソフトウェアをユーザー自身の手でビルドし、pacman互換のパッケージとしてインストールすることができます。
AURはArch Linuxの最大の強みの一つであり、非常に豊富なソフトウェアの宝庫ですが、その利用にはいくつかのハードルがあります。
- 手動でのビルドが必要: PKGBUILDをダウンロードし、依存関係を確認し、
makepkgコマンドでビルド・パッケージ化し、最後にpacman -Uでインストールするという一連の作業が必要です。 - 依存関係の管理: ビルドに必要なライブラリやツール(ビルド依存)、実行に必要なライブラリ(実行依存)を手動で解決する必要があります。特にAURパッケージが別のAURパッケージに依存している場合、その依存関係を再帰的にたどってビルドしていくのは非常に手間がかかります。
- アップデートの追跡: インストールしたAURパッケージの新しいバージョンが公開されたかどうかを定期的にチェックし、手動でビルド・インストールし直す必要があります。
これらの手間を自動化し、AURの利用を格段に楽にしてくれるのが、AURヘルパーです。AURヘルパーは、AURパッケージの検索、依存関係の解決(公式リポジトリとAURの両方)、PKGBUILDのダウンロード、ビルド、インストール、そしてアップデートまでを一元的に管理してくれるツールです。
数あるAURヘルパーの中でも、特に人気が高く、多くのユーザーに支持されているのがyay (Yet another Yogurt)です。yayはpacmanライクな直感的なコマンド体系を持ち、高速かつ高機能です。この記事では、このyayに焦点を当て、その導入から日々の利用方法までを徹底的に解説します。
2. AUR (Arch User Repository) とは?その仕組みと注意点
yayの使い方を理解するためには、まずyayが何をしているのか、つまりAURがどのように機能しているのかを知ることが重要です。
2.1. AURの仕組み
AURは、公式のパッケージリポジトリそのものではありません。AURにあるのは、ソフトウェアのソースコードやバイナリではなく、それらをArch Linuxのパッケージ形式(.pkg.tar.zstなど)にビルドするためのPKGBUILDというスクリプトファイルです。
PKGBUILDは、Bashシェルスクリプトとして記述されており、主に以下の情報を定義しています。
- pkgname: パッケージの名前
- pkgver: パッケージのバージョン
- pkgrel: パッケージのリビジョン(Arch側での変更回数)
- pkgdesc: パッケージの説明
- arch: サポートするアーキテクチャ(例:
('x86_64')) - url: ソフトウェアの公式ウェブサイト
- license: ライセンス情報
- depends: 実行時に必要な依存パッケージ(pacmanでインストール可能なもの)
- makedepends: ビルド時に必要な依存パッケージ(pacmanでインストール可能なもの)
- optdepends: オプションの依存パッケージ
- conflicts: 競合するパッケージ
- provides: 提供する機能(他のパッケージの依存関係を満たす)
- replaces: 置換する古いパッケージ
- source: ソースコードや必要なファイルのダウンロード元URLまたはローカルパス
- sha256sums など: ソースファイルのハッシュ値(ファイルの改ざんチェック)
- prepare(): ビルド前にソースコードを準備する処理(パッチ適用など)
- build(): ソフトウェアをビルドする処理(
./configure,makeなど) - package(): ビルドされたファイルを適切なディレクトリ構造に配置し、パッケージに含める処理(
make install DESTDIR=$pkgdirなど)
ユーザーは、AURのウェブサイト(aur.archlinux.org)にアクセスし、インストールしたいソフトウェアのページからPKGBUILDファイルとその関連ファイル(パッチなど)をダウンロードします。
ダウンロードしたPKGBUILDが含まれるディレクトリで、ユーザーはmakepkgコマンドを実行します。makepkgコマンドはPKGBUILDを読み込み、以下の処理を実行します。
source配列に記述されたファイルをダウンロードします。- ダウンロードしたファイルのハッシュ値をチェックし、PKGBUILDに記述されたハッシュ値と一致するか確認します。
prepare()関数があれば実行します。build()関数を実行し、ソフトウェアをビルドします。package()関数を実行し、ビルドされたファイルをステージングディレクトリ(通常はpkg/)に配置します。- ステージングディレクトリの内容を元に、pacmanがインストール可能なパッケージファイル(
.pkg.tar.zst)を作成します。
ビルドが成功しパッケージファイルが生成されたら、最後にsudo pacman -U <パッケージファイル名>を実行してシステムにインストールします。
makepkg -sとすることで、dependsとmakedependsにリストアップされた公式リポジトリの依存関係を自動的に解決しインストールできます。さらにmakepkg -siとすることで、ビルド後に自動的にpacmanでのインストールまで行ってくれます。
AURヘルパー(yayなど)は、この一連のダウンロード、依存解決、makepkg -si実行、そしてアップデート時の差分確認などを全て自動で行ってくれるのです。
2.2. AURを利用する上での注意点とリスク
AURは非常に便利ですが、公式リポジトリとは性質が異なるため、利用には注意が必要です。
- 自己責任: AURのパッケージは、Arch Linuxの開発チームによってメンテナンスされているわけではありません。あくまで世界中のユーザーが作成・管理しているものです。そのため、パッケージの品質や信頼性は投稿者によって異なります。PKGBUILDの内容を理解し、何が実行されるのかを把握した上で利用することが推奨されます。
- セキュリティリスク: PKGBUILDはシェルスクリプトであり、理論的には悪意のあるコードを記述することも可能です。信頼できるメンテナーが提供しているか、人気があり多くのユーザーに利用されているか、AURのウェブサイトでコメントやレビューを確認するなど、ある程度の判断が必要です。最も安全なのは、自分でPKGBUILDの内容をレビューすることです。
- 安定性: AURには、開発版 (
-git,-svn,-hgサフィックスが付くことが多い) やベータ版のソフトウェアも多く含まれています。これらは最新の機能を利用できる反面、不安定である可能性があります。 - 依存関係の複雑さ: AURパッケージは公式リポジトリのパッケージだけでなく、他のAURパッケージに依存している場合があります。依存関係が深くなると、ビルドに時間がかかったり、途中でエラーが発生したりする可能性が高まります。
- ビルド時間とリソース: ソースコードからビルドするため、ソフトウェアによっては非常に時間がかかったり、多くのCPUリソースやメモリ、ディスク容量を消費したりします。特に大規模なアプリケーション(例: 一部のデスクトップ環境コンポーネント、開発ツールチェーンなど)のビルドは時間がかかります。
- 更新の遅延または停止: AURパッケージの更新はメンテナーに依存します。公式版のアップデートに比べてAUR版のアップデートが遅れたり、メンテナーがいなくなって更新が停止したりすることもあります。
これらの注意点を理解した上でAURを利用することが、Arch Linuxを安全かつ快適に使う上で非常に重要です。yayはこれらのリスクを完全に排除するツールではありませんが、PKGBUILDの差分表示機能など、ユーザーがリスクを判断するための情報を提供してくれます。
3. AURヘルパー「yay」とは?その特徴
AURヘルパーはAUR利用の手間を省くためのツールですが、それぞれに特徴があります。yayが多くのユーザーに選ばれる理由は何でしょうか。
yayの主な特徴は以下の通りです。
- pacmanライクな操作性:
yayのコマンドシンタックスは、公式のパッケージマネージャーであるpacmanに非常に似ています。例えば、システムの更新はyay -Syu、パッケージのインストールはyay -S <パッケージ名>、検索はyay -Ss <キーワード>といった具合です。これにより、pacmanの操作に慣れているユーザーは学習コストが非常に低く、すぐに使いこなすことができます。 - 公式リポジトリとAURの統合管理:
yay -Syuを実行するだけで、公式リポジトリのパッケージとAURからインストールしたパッケージの両方を同時にチェックし、更新することができます。 - 依存関係の自動解決: 公式リポジトリの依存関係はもちろん、AURパッケージが別のAURパッケージに依存している場合も、その依存関係を自動的に解決し、必要なパッケージを順番にビルド・インストールしてくれます。
- インタラクティブな操作:
yay <キーワード>のようにキーワードだけを入力すると、検索結果を表示し、インストールしたいパッケージを番号で選択するインタラクティブなモードに入ります。 - PKGBUILDの差分表示: AURパッケージをアップデートまたはインストールする際に、AUR上の最新のPKGBUILDとローカルのPKGBUILD(アップデートの場合)またはインストール済みのパッケージ情報(新規インストールの依存としてビルドする場合)との差分を表示し、変更内容を確認するかどうかを尋ねてくれます。これはセキュリティリスクを判断する上で非常に有用な機能です。
- クリーンアップ機能: 不要になったビルドファイルやキャッシュを削除する機能があります。
- 高速な検索とビルド: Go言語で記述されており、高速に動作します。
これらの特徴により、yayはAURを初めて使うユーザーから上級者まで、幅広い層におすすめできるAURヘルパーとなっています。
4. yayの導入方法
さて、AURとyayについて理解を深めたところで、実際にyayをArch Linuxシステムに導入しましょう。yayは公式リポジトリには含まれていないため、AURから手動でビルドしてインストールする必要があります。
4.1. 必要なツールのインストール
yayをビルドするには、基本的な開発ツールとgitが必要です。これらのツールは、多くの場合base-develというメタパッケージグループに含まれています。システムにこれらのツールがインストールされているか確認し、必要であればインストールします。
ターミナルを開いて、以下のコマンドを実行してください。
bash
sudo pacman -S --needed base-devel git
sudo pacman -S: パッケージをインストールするコマンドです。管理者権限が必要です。--needed: 指定したパッケージが必要な場合にのみインストールします。既にインストールされている場合はスキップされます。base-devel: ビルドに必要な基本的なツール(gcc, make, pkg-configなど)を含むメタパッケージグループです。git: ソースコードリポジトリからファイルをクローンするために必要です。
このコマンドを実行すると、base-develグループに含まれるパッケージとgitがインストールされていない場合、インストールが提案されます。Enterキーを押してインストールを進めてください。
4.2. yayのソースコードの取得
次に、AURからyayのPKGBUILDを含むリポジトリをクローンします。一時的な作業ディレクトリを作成して、そこで作業することをおすすめします。
bash
mkdir ~/builds
cd ~/builds
git clone https://aur.archlinux.org/yay.git
mkdir ~/builds: ホームディレクトリにbuildsというディレクトリを作成します。(ディレクトリ名は任意です)cd ~/builds: 作成したディレクトリに移動します。git clone https://aur.archlinux.org/yay.git: yayのAURリポジトリをローカルにクローンします。これにより、yayという名前の新しいディレクトリが作成され、その中にPKGBUILDファイルや関連ファイルがダウンロードされます。
クローンが完了したら、クローンしたyayディレクトリに移動します。
bash
cd yay
このディレクトリには、PKGBUILDというファイルが存在するはずです。lsコマンドで確認してみてください。
bash
ls
PKGBUILDファイルの他に、.gitignoreなどのファイルがあるかもしれません。ここで重要なのはPKGBUILDファイルです。cat PKGBUILDコマンドなどで中身を軽く確認することもできます(必須ではありませんが、慣れてきたら確認する癖をつけると良いでしょう)。
4.3. yayのビルドとインストール
PKGBUILDファイルのあるディレクトリで、makepkgコマンドを使ってyayをビルドし、インストールします。
bash
makepkg -si
makepkg: PKGBUILDを元にパッケージをビルドするコマンドです。-s(–syncdeps): ビルドに必要な依存関係(makedependsにリストアップされているパッケージ)をpacmanを使って自動的に解決し、インストールします。-i(–install): ビルドが成功した後、生成されたパッケージをpacmanを使って自動的にインストールします。
このコマンドを実行すると、まずyayのビルドに必要な依存パッケージが確認され、インストールされていない場合はpacmanによるインストールが提案されます。承諾すると、依存パッケージがインストールされます。
次に、yay自体のソースコードがダウンロードされ、ビルドプロセスが開始されます。ビルドにはしばらく時間がかかる場合があります。
ビルドが完了すると、yayのパッケージファイル(yay-*-x86_64.pkg.tar.zstのような名前)がカレントディレクトリに作成されます。
最後に、-iオプションの効果により、生成されたパッケージをインストールするか尋ねられます([Y/n])。yを押してEnterキーを押すと、pacmanが起動し、yayパッケージがシステムにインストールされます。この際、通常はsudoが必要になるため、パスワードの入力を求められます。makepkg自体は一般ユーザー権限で実行できますが、システムへのインストールには管理者権限が必要です。
インストールが完了したら、正しくインストールされたか確認してみましょう。
bash
yay --version
yayのバージョン情報が表示されれば、インストールは成功です!これでAURヘルパーyayを使う準備が整いました。
4.4. インストール後のクリーンアップ
yayのビルドに使った作業ディレクトリは不要になります。ディスク容量を節約するために削除しておきましょう。
“`bash
cd .. # ~/builds ディレクトリに戻る
rm -rf yay # yay ディレクトリを削除
rm -rf ~/builds # builds ディレクトリ自体も不要なら削除
“`
これで、yayの導入は完了です。次のセクションでは、yayの基本的な使い方を見ていきましょう。
5. yayの基本的な使い方:pacmanライクな操作
yayはpacmanと非常によく似たコマンド体系を持っています。pacmanで日常的に行っている操作の多くを、ほぼ同じ感覚でyayに置き換えることができます。しかも、yayは公式リポジトリとAURの両方を対象に操作してくれます。
ここでは、yayの基本的なコマンドとその使い方を解説します。
5.1. システムの更新 (yay -Syu)
Arch Linuxユーザーにとって最も頻繁に使うコマンドの一つがシステムの更新です。pacman -Syuは公式リポジトリのパッケージを更新しますが、yayを使うと公式リポジトリとAURの両方を同時に更新できます。
bash
yay -Syu
このコマンドを実行すると、yayはまずpacman -Syuを実行し、公式リポジトリのパッケージリストを同期し、公式パッケージのアップデートを適用します。
公式リポジトリの更新が完了すると、次にインストールされているAURパッケージの新しいバージョンがあるかチェックします。新しいバージョンが見つかった場合、yayはそのパッケージのPKGBUILDをAURからダウンロードし、ローカルのバージョンと比較して差分を表示するか尋ねてきます。
:: <パッケージ名> の PKGBUILD diff を表示しますか? [Y/n]
YまたはEnterキーを押すと、現在のPKGBUILDとAUR上の新しいPKGBUILDの差分が表示されます。この差分を見て、どのような変更があったのか(バージョンアップ、依存関係の変更、ビルドスクリプトの修正など)を確認することができます。怪しい変更がないかチェックする習慣をつけることは、セキュリティ上非常に重要です。
差分確認後、あるいは差分を表示しない選択をした後、yayはAURパッケージの依存関係を含めてビルド・インストールを進めるか確認してきます。
:: Proceed with installation? [Y/n]
YまたはEnterキーを押すと、必要なAURパッケージが順番にビルドされ、pacmanを使ってインストールされます。ビルドには時間がかかる場合があります。
注意点: 公式リポジトリの更新(pacman -Syu)は、システムの安定性を保つ上で非常に重要です。yay -Syuを使う場合でも、定期的に(例えば週に一度など)実行することをおすすめします。また、公式リポジトリで大規模なライブラリの更新(例: glibc, mesaなど)があった直後は、AURパッケージがまだ新しいライブラリに対応できていない場合があります。公式リポジトリの更新だけ先に済ませておき、AURパッケージの更新は少し時間をおいてから行う、という運用も考慮できます。
5.2. パッケージの検索 (yay -Ss <キーワード>)
インストールしたいソフトウェアが公式リポジトリにあるか、AURにあるか分からない場合、yay -Ssを使って検索できます。
bash
yay -Ss vlc
このコマンドは、公式リポジトリとAURの両方から、キーワード「vlc」を含むパッケージを検索します。検索結果は以下のように表示されます。
core/vlc 3.0.18-9 [インストール済み]
Multi-platform MPEG, DVD, and DivX player
extra/python-vlc 3.0.18-2
Python bindings for VLC
aur/vlc-bin 3.0.18-1 (+0 0.00)
vlc but precompiled to speed up the install process
aur/vlc-bittorrent 3.0.18-1 (+0 0.00)
Bittorrent support for VLC
... 他にも多数 ...
出力の見方:
- 先頭の文字列 (
core/,extra/,aur/) は、そのパッケージがどのリポジトリにあるかを示します。core,extra,communityなどは公式リポジトリです。aurはAURにあるパッケージです。
- パッケージ名の後ろにバージョン番号、リビジョン番号が続きます。
[インストール済み]と表示されている場合は、そのパッケージが既にシステムにインストールされていることを示します。- AURパッケージの場合、バージョン番号の後に
(+<人気度> <投票数>)のような情報が表示されることがあります。人気度や投票数は、そのパッケージがどのくらい多くのユーザーに利用されているか、信頼されているかの目安になります。 - その行の下に、パッケージの説明が表示されます。
5.3. パッケージのインストール (yay -S <パッケージ名>)
インストールしたいパッケージ名が分かっている場合、yay -Sコマンドでインストールできます。yayはまず公式リポジトリにその名前のパッケージがあるか探し、なければAURを探します。
bash
yay -S code
例えば、Microsoft VS Codeのオープンソース版であるcode(AURにあります)をインストールしたい場合、このコマンドを実行します。
yayはまずcodeという名前のパッケージを公式リポジトリで探します(通常ありません)。次にAURで探し、見つかればそのパッケージの情報を表示し、インストールするか確認してきます。
依存関係がある場合、それらも合わせてインストールするか尋ねられます。
“`
:: Resolving dependencies…
:: Looking for conflicting packages…
Packages (3) <依存パッケージ1> <依存パッケージ2> code
Total Installed Size: … MiB
:: Proceed with installation? [Y/n]
“`
ここでyを押すと、依存関係を含めてパッケージのビルドとインストールが開始されます。
AURパッケージの場合、ビルド前にPKGBUILDの確認を求められることがあります(設定によります)。確認する場合、エディタが開いてPKGBUILDが表示されます。内容を確認したらエディタを保存・終了してください。
ビルドが完了すると、生成されたパッケージがpacmanを使ってシステムにインストールされます。パスワードの入力が必要になる場合があります。
5.4. パッケージの検索とインストール(インタラクティブモード)
yayにキーワードだけを渡して実行すると、検索とインストールをまとめて行うインタラクティブモードに入ります。
bash
yay spotify
このコマンドは、spotifyというキーワードで公式リポジトリとAURを検索し、一致するパッケージのリストを表示します。
“`
1 community/spotify-client 1:1.2.19.934-3 (9348.2 MiB 262.0 MiB)
Spotify client for Linux
2 aur/spotify 1:1.2.19.934-3 (+2195 7.99)
A proprietary music streaming service
3 aur/spotify-adblock 1.4.1.56.gf34f4f0-1 (+10 0.56)
Block ads in the spotify client
… 他にも多数 …
:: Packages to install (eg: 1 2 3, 1-3 or ^4)
->
“`
ユーザーは、インストールしたいパッケージの番号(複数可、範囲指定も可能)を入力してEnterキーを押します。例えば、公式リポジトリのspotify-clientをインストールしたい場合は1と入力します。AURのspotifyをインストールしたい場合は2と入力します。複数のパッケージをインストールしたい場合はスペースで区切って番号を入力します(例: 1 3)。
番号を入力してEnterを押すと、選択したパッケージとその依存関係のインストールプロセスに進みます。インストール手順は前述のyay -Sと同じです。
何も入力せずにEnterキーを押すと、インストールはキャンセルされます。
このインタラクティブモードは、パッケージ名を完全に覚えていない場合や、複数の似た名前のパッケージから選びたい場合に非常に便利です。
5.5. インストール済みパッケージの確認 (yay -Qs <キーワード>, yay -Q)
インストール済みのパッケージを検索したり、リストアップしたりするコマンドもpacmanと同じです。
-
インストール済みのパッケージの中から、キーワードを含むものを検索:
bash
yay -Qs vlc
これはpacman -Qs vlcと同じ結果を返します。yayはインストール済みパッケージの情報を直接pacmanから取得しているため、公式パッケージもAURパッケージも区別なく表示されます。 -
インストールされている全てのパッケージをリストアップ:
bash
yay -Q
これもpacman -Qと同じ結果を返します。AURからインストールされたパッケージかどうかは、通常、パッケージ名やバージョン、ソース(yay -Si <pkgname>で確認)から判断することになります。
5.6. パッケージ情報の表示 (yay -Si <パッケージ名>)
特定のパッケージの詳細情報を確認したい場合は、yay -Siを使います。
bash
yay -Si code
このコマンドも、公式リポジトリとAURの両方を探します。AURパッケージの場合、公式リポジトリのパッケージよりも詳細な情報が表示されます。
Repository : aur
Name : code
Version : 1.85.2-1
Description : The Open Source build of Visual Studio Code (AUR package)
Architecture : x86_64
URL : https://code.visualstudio.com/
Licenses : MIT
Conflicts With : visual-studio-code visual-studio-code-bin
... 依存関係など ...
Maintainer : <メンテナー名>
Last Updated : <最終更新日時>
Votes : <投票数>
Popularity : <人気度>
AUR URL : https://aur.archlinux.org/packages/code
(Installed From: /home/user/.cache/yay/code/code-1.85.2-1-x86_64.pkg.tar.zst) # インストール済みの場合
特にAURパッケージの場合、メンテナー、最終更新日時、投票数、人気度、そしてAURのウェブサイトのURL (AUR URL)が表示されるのが特徴です。これらの情報は、そのパッケージの信頼性や活発さを判断する上で役立ちます。AUR URLを確認すれば、ブラウザで直接そのパッケージのAURページを開き、PKGBUILDを確認したり、コメントを読んだりできます。
5.7. パッケージの削除 (yay -R <パッケージ名>)
インストールしたパッケージを削除するには、yay -Rを使います。これもpacman -Rと同じように機能し、公式パッケージもAURパッケージも削除できます。
bash
yay -R code
依存関係も合わせて削除したい場合は、pacmanと同様にオプションを追加します。
yay -Rs <パッケージ名>: 指定したパッケージとその依存関係のうち、他のパッケージが依存していないものを再帰的に削除します。yay -Rsc <パッケージ名>:-Rsに加えて、設定ファイルも削除します。注意: 設定ファイルは通常ユーザーのホームディレクトリなどにあるため、システム全体の設定ファイルのみを削除することが多いです。重要な設定ファイルまで削除しないよう注意が必要です。
yay -Rコマンドは内部的にpacman -Rを呼び出しているため、pacmanの削除に関する詳細な挙動やオプション(例えば-n, -ddなど)は、yay -Rでも概ねそのまま利用できます。ただし、通常は-R, -Rs, -Rnsあたりがよく使われるでしょう。
5.8. 孤立したパッケージの削除 (yay -Qdtq | yay -Rns -)
他のパッケージの依存関係としてインストールされたものの、現在はどのインストール済みパッケージからも依存されていない「孤立したパッケージ」は、システムの容量を圧迫する可能性があります。これらを検索して削除するコマンドも、pacmanの組み合わせと同様にyayでも実行できます。
bash
yay -Qdtq
このコマンドは、孤立したパッケージの名前のみをリストアップします。
-Q: データベースを問い合わせます。-d: 依存関係としてインストールされたパッケージのみを対象とします。-t: どのパッケージからも依存されていないものを対象とします。-q: パッケージ名のみを表示します(他の情報を省略)。
このリストアップされたパッケージを削除するには、パイプ|を使ってyay -Rns -コマンドに渡します。
bash
yay -Qdtq | yay -Rns -
yay -Rns: パッケージを削除し、その依存関係のうち他のパッケージが依存していないもの(-s)、および設定ファイル(-n, ただし通常はシステム設定ファイルのみ)も削除します。-: 標準入力からパッケージ名を受け取ることを意味します。
このコマンドを実行すると、孤立したパッケージのリストが表示され、削除するか確認されます。yを押してEnterキーを押すと削除が実行されます。
この操作は定期的に行うことで、システムのディスク容量を効率的に管理できます。
6. yayの高度な使い方・便利な機能
基本的な操作だけでも十分に便利ですが、yayにはさらに効率的にAURを利用するための便利な機能がいくつかあります。
6.1. クリーンアップ機能 (yay -Sc, yay -Scc, yay -Sca, yay -Scn)
パッケージのビルドやインストール時、pacmanやyayはダウンロードしたソースファイルや生成されたパッケージファイルをキャッシュとして保存します。これらは再インストールやダウングレードの際に役立ちますが、ディスク容量を消費します。不要になったキャッシュやビルドディレクトリを削除するには、yay -Sc系のコマンドを使います。
yay -Sc: 公式リポジトリのパッケージキャッシュのうち、現在インストールされているパッケージ以外の古いバージョンを削除します。これはpacman -Scと同じ動作です。yay -Scc: 公式リポジトリのパッケージキャッシュを全て削除します。これはpacman -Sccと同じ動作です。注意: 必要なときに再ダウンロードが必要になります。通常は-Scで十分です。yay -Sca: AURパッケージのソースファイルやビルド済みのパッケージファイル(AURキャッシュ)を全て削除します。yay -Scn: AURパッケージのビルド時に作成された一時的なビルドディレクトリ(通常~/.cache/yay/<パッケージ名>)を削除します。これらのディレクトリにはダウンロードしたソースファイルやビルドファイルが残っています。
これらのクリーンアップコマンドを実行すると、削除されるファイルとその容量が表示され、実行するか確認されます。特にAURを頻繁に利用すると、-Scaや-Scnでクリーンアップできる容量が多くなることがあります。
推奨されるクリーンアップ: 定期的にyay -Scとyay -Scnを実行することをおすすめします。yay -Scで公式リポジトリの古いキャッシュを削除し、yay -ScnでAURのビルドディレクトリを削除することで、ディスク容量を節約できます。yay -Sccやyay -Scaは、特にディスク容量が逼迫している場合にのみ使用を検討してください。
6.2. PKGBUILDの表示と編集
AURパッケージのインストールやアップデート時に、yayはPKGBUILDの差分表示を提案してくれますが、PKGBUILD全体を確認したり、インストール前に自分で編集したりすることも可能です。
yay -S <パッケージ名>のインストールプロセス中、依存関係の確認プロンプトの後などに「PKGBUILD を編集しますか?」([Y/n])のようなプロンプトが表示されることがあります(設定による)。ここでYを押すと、設定されたエディタでPKGBUILDが開きます。内容を確認したり、必要であれば修正したりできます。保存してエディタを終了すると、yayは修正されたPKGBUILDを使ってビルドを続行します。
インストール前に手動でPKGBUILDを取得したい場合は、yay -G <パッケージ名>コマンドを使用します。
bash
yay -G spotify
このコマンドを実行すると、カレントディレクトリにspotifyというディレクトリが作成され、その中にAURから取得したPKGBUILDファイルが配置されます。
bash
ls
spotifyというディレクトリが作成されていることを確認し、その中に移動します。
bash
cd spotify
ls
PKGBUILDファイルがあることを確認できます。これで、手動でPKGBUILDの内容をじっくり確認したり、編集したりできます。編集後、このディレクトリでmakepkg -siコマンドを実行すれば、自分で修正したPKGBUILDを使ってパッケージをビルド・インストールできます。この方法は、より詳細なレビューやカスタムビルドを行いたい場合に役立ちます。
6.3. AURパッケージのスナップショットを利用する
AURパッケージはメンテナーによって更新されますが、AURのウェブサイトでは過去のバージョンのPKGBUILDも確認できます。yayは、特定の過去のバージョンのPKGBUILD(スナップショット)を取得してビルドする機能も持っています。
yay -G <パッケージ名> --needed のように--neededオプションを使用すると、最新のPKGBUILDではなく、インストールされているパッケージに対応するバージョンのPKGBUILDを取得しようとします(ローカルのPKGBUILDがキャッシュに残っている場合など)。
しかし、通常は単に過去のバージョンのPKGBUILDを手動でAURのウェブサイトからダウンロードするか、yay -Gで最新版を取得した後、必要に応じてPKGBUILDのpkgverやsourceなどの記述を過去のバージョンに合わせて手動で編集し、makepkg -siでビルドするという流れになります。yay自体が特定時点のスナップショットを指定して取得する直接的なコマンドオプションはあまり一般的ではありません。最新版のPKGBUILDをベースに、必要に応じてソースのバージョンやハッシュ値を修正してビルドすることが多いです。
6.4. ビルドオプションの指定
yayは、内部的にmakepkgコマンドを呼び出してビルドを行います。makepkgには、ビルドプロセスを制御するための様々なオプションがあります(例: ビルドに使用するCPUコア数を指定する-jオプション、特定のビルドオプションを無効にするオプションなど)。
これらのmakepkgオプションをyay経由で渡すことも可能です。yayのコマンドラインで--makepkgというプレフィックスを使ってオプションを指定します。
bash
yay -S <パッケージ名> --makepkg --nocheck
この例では、<パッケージ名>をインストールする際に、makepkgに--nocheckオプションを渡しています。--nocheckオプションは、パッケージに含まれるテストスイートの実行をスキップします。これによりビルド時間を短縮できることがありますが、パッケージの正当性が確認できないため、使用には注意が必要です。
よく使うmakepkgオプションがあれば、yayの設定ファイルに記述しておくことも可能です(後述)。
6.5. 設定ファイルの利用
yayは設定ファイルを使って永続的な設定変更を行うことができます。設定ファイルはJSON形式で記述され、以下の場所に置かれます。
- システム全体の設定:
/etc/yay/config.json - ユーザー個別の設定:
~/.config/yay/config.json
ユーザー個別の設定ファイルは、システム全体の設定ファイルよりも優先されます。
設定ファイルの例:
json
{
"buildDir": "/var/cache/yay",
"cleanAfterBuild": true,
"savePkgs": false,
"devel": true,
"editor": "nvim",
"makepkgbin": "makepkg",
"pacmanbin": "pacman",
"tarbin": "tar",
"answerclean": "N",
"answerdiff": "N",
"answeredit": "N",
"answerupgrade": "P",
"fastupgrade": false,
"sortby": "votes",
"searchby": "name-desc",
"sudoloop": false,
"provides": true,
"pgpfetch": true,
"aururl": "https://aur.archlinux.org",
"requestsplitpkgs": "",
"news": true,
"notify": false,
"aurv": 5,
"pacman": [
"--color=always"
],
"makepkg": [
"--force",
"--nocheck"
],
"mflags": [
"-j16"
],
"so": []
}
主要な設定項目の一部:
buildDir: ビルド用の一時ディレクトリをどこに作成するか指定します。デフォルトは~/.cache/yayです。cleanAfterBuild: ビルド後に一時ディレクトリを自動的に削除するかどうか (true/false)。savePkgs: ビルドしたパッケージファイル(.pkg.tar.zst)を保存するかどうか (true/false)。devel: AURの-git,-svnなどの開発版パッケージもyay -Syuでチェック・更新対象とするかどうか (true/false)。デフォルトはfalseです。開発版を追跡したい場合はtrueに設定します。editor: PKGBUILDを編集する際に使用するエディタを指定します。環境変数EDITORよりも優先されます。answerdiff,answeredit: PKGBUILDの差分表示や編集のプロンプトに対するデフォルトの回答を指定します ("Y","N","A"(常に)).answerupgrade: アップグレードの際のプロンプトに対するデフォルトの回答を指定します ("A"(すべて)、"N"(なし)、"P"(プロンプト)).sortby: 検索結果のデフォルトのソート順 ("votes","popularity","name","version","completed").makepkg: makepkgに常に渡したいオプションを配列で指定します。例えば["--nocheck"]とすると、常にテストをスキップします。mflags: makepkgのMAKEFLAGS環境変数に設定するオプション(通常は並列ビルドのための-j<コア数>を指定)。
これらの設定を調整することで、yayの挙動をより自分の好みに合わせることができます。~/.config/yay/config.jsonを新規作成または編集して設定を記述してください。設定ファイルのフォーマットや利用可能なオプションの詳細は、yayのmanページ (man yay) やGitHubリポジトリを確認することをおすすめします。
7. AURとyayを利用する上での注意点(再確認)
yayを使うことでAURの利用は格段に楽になりますが、AURの性質そのものが持つ注意点やリスクがなくなるわけではありません。安全かつ効果的にyayを活用するために、以下の点を常に意識しておきましょう。
- PKGBUILDをレビューする習慣をつける: 特に新しくインストールするパッケージや、重要な変更を含むアップデートの場合は、PKGBUILDの内容を軽くでも確認する習慣をつけましょう。
sourceでダウンロード元を確認し、build()やpackage()関数で何が実行されるか、インストール先はどこかなどを把握します。curl ... | bashのような危険な記述がないか特に注意が必要です。yayの差分表示機能はこれを手助けしてくれます。 - 信頼性を判断する: AURパッケージは誰でも投稿できます。インストール前にAURのウェブサイトでパッケージの人気度、投票数、メンテナー、最終更新日、コメントなどを確認しましょう。人気があり活発にメンテナンスされているパッケージは比較的信頼性が高いと考えられます。
- セキュリティリスクを理解する: AURはユーザーリポジトリであり、公式なレビュープロセスはありません。悪意のあるコードが含まれる可能性はゼロではないことを理解し、リスクを受け入れられる範囲で利用しましょう。重要なシステムでは、信頼できるソースからのソフトウェアのみを使用することを検討すべきです。
- 安定性に注意する:
*-gitや*-develのような開発版パッケージは、最新の機能がある反面、不安定であったり、ビルドが失敗したりすることがよくあります。日常的に使う重要なアプリケーションでは、安定版(バージョン番号のみ、またはそれに準ずるもの)を選択することをおすすめします。 - 依存関係の衝突やビルド失敗: AURパッケージは依存関係が複雑になりがちです。まれに、公式リポジトリのパッケージとAURパッケージの依存関係が衝突したり、特定の環境でビルドが失敗したりすることがあります。ビルドエラーが発生した場合は、エラーメッセージをよく読み、AURのパッケージページで同様の問題が報告されていないか確認しましょう。
- ディスク容量の管理: ビルドプロセスやキャッシュはディスク容量を消費します。特に大きなパッケージをビルドしたり、多数のAURパッケージをインストールしたりすると、すぐに容量が圧迫されることがあります。定期的に
yay -Scnなどでクリーンアップを行いましょう。 - 公式リポジトリ優先: 可能な限り、必要なソフトウェアは公式リポジトリからインストールすることを推奨します。公式リポジトリのパッケージはArch Linux開発チームによってメンテナンスされており、システムとの整合性や安定性がより保証されています。公式リポジトリにない場合にのみ、AURの利用を検討するのが良いアプローチです。
8. まとめ
この記事では、Arch LinuxにおけるAUR(Arch User Repository)の役割とその仕組み、そしてAURヘルパーであるyayの導入方法から基本的な使い方、さらに便利な機能や利用上の注意点について詳しく解説しました。
- AURは、公式リポジトリにはない多様なソフトウェアをArch Linuxで利用可能にする素晴らしい仕組みです。ユーザーが作成・共有するPKGBUILDファイルに基づいて、ユーザー自身の手でパッケージをビルドします。
- yayは、このAURの利用プロセス(検索、依存解決、ビルド、インストール、アップデート)を自動化し、
pacmanライクな直感的な操作でAURパッケージを管理できるようにする強力なAURヘルパーです。 yay -Syuによる公式リポジトリとAURの一括更新、yay -Ssによる検索、yay -Sによるインストール、yay -Rによる削除など、日常的なパッケージ管理が非常に効率化されます。- インタラクティブモード、PKGBUILDの差分表示・編集機能、豊富なクリーンアップ機能など、yayにはAURをより快適かつ安全に利用するための多くの機能が備わっています。
しかし、AURの利用はあくまで自己責任です。yayはツールであり、PKGBUILDの内容を自動的に検証してくれるわけではありません。インストールするパッケージの信頼性を自分で判断し、必要に応じてPKGBUILDをレビューするなど、AURの利用に伴うリスクを理解した上で活用することが、Arch Linuxを使いこなす上で非常に重要です。
yayを使いこなすことで、Arch Linuxのカスタマイズ性とソフトウェアの選択肢は格段に広がります。この記事が、あなたのArch Linuxライフをより豊かにするための一助となれば幸いです。
Arch Linuxのパッケージ管理は奥深く、学ぶほどにその強力さを実感できます。これからもぜひArch Wikiやコミュニティを活用し、Arch Linuxの世界を楽しんでください。