Show page source of ソフトウェア/Pacman/Arch_User_Repository #124185

Arch User Repository(略称AUR)はコミュニティが運営する非公式リポジトリである。バイナリパッケージではなくビルド方法が書かれたスクリプト(PKGBUILD)がまとめて置かれており、しばしば「ユーザーの知の結晶」と表現される。

makepkgを使ってソースからパッケージを作り、それを[ソフトウェア/Pacman Pacman]で導入できる。なお人気のあるパッケージは公式リポジトリの「extra」(2023年5月中旬のリポジトリ統廃合以前は「community」)に取り込まれる場合がある。

= 注意 =
AURのパッケージはユーザー達が提供するため、Arch公式では検査が行なわれていない。

新日本放送がサポートするパッケージは以下の通りである。
 * UnivalentのリポジトリにあるAUR由来のパッケージ
 * 「Chaotic AUR」に存在するパッケージ

= 試してみよう =
パッケージの検索やダウンロードは[https://aur.archlinux.org/ Arch公式によって提供されるウェブインターフェイス]でできるようになっている。また「makepkg」でパッケージを生成して、Pacmanで環境への導入も可能である。

== 準備 ==
```[https://www.archlinux.jp/packages/core/any/base-devel/ base-devel]```^core^メタパッケージを導入してあるか確認しよう(Univalentでは標準で同梱済み)。

== ビルドファイルの取得 ==
欲しいパッケージはAURのページから検索できる。

ビルドファイルは以下の方法で取得できる。
 * パッケージのGitリポジトリを複製する(推奨)
「git pull」でパッケージの更新ができるという利点がある。
||```git clone https://aur.archlinux.org/''pkgname''.git```||

 * スナップショットをダウンロードする。
パッケージのページの右側にある「パッケージアクション」→「スナップショットのダウンロード」リンク、或いは以下のコマンドでtarballを取得する。
||```wget https://aur.archlinux.org/cgit/aur.git/snapshot/''pkgname''.tar.gz```||

解凍をする必要があるので、(可能であればAURビルド用ディレクトリ内で)解凍しよう。
||```tar xvf ''pkgname''.tar.gz```||

= AURヘルパー? =
AURヘルパーとは、AURの利用を自動化するソフトである。代表的なのは```yay```^chaotic-aur^、```paru```^chaotic-aur^だが、他にも様々なのがある。

= ファ~キュ~ッ! =
== どんなパッケージがあるの? ==
例えばユーザーがそれぞれ使いたいパッケージとか、ライセンスの関係で再配布ができないパッケージとか、公式パッケージのベータ版とか…それから[ソフトウェア/動的カーネルモジュールサポート DKMS]対応モジュールだったり[デスクトップ環境/GNOME GNOME] Shellの拡張機能もあるよ。ただパッケージというと語弊があるかな…。正確には単なる「ビルドスクリプト」、つまりPacman用にバイナリを作成するレシピだ。

== 旧communityとの違いって? ==
communityはバイナリパッケージが置いてあった。コミュニティの十分な関心が集まるとパッケージは「community」リポジトリに移され、自分でパッケージを作る必要がなくなるのだ!なお2023年5月中旬からextraに統合されたので、今後はそこに移される模様。

== このパッケージが古いよ~! ==
そんな時は「out-of-date」フラグを立てるといい。理由を書く欄には可能であれば最新版の公開アナウンスとか、それへのtarballへのリンクも含めてくれると助かるかも。

その間に自分の環境でPKGBUILDを編集してパッケージを更新するのもいいかな。ビルトプロセスの変更がないなら、「pkgver」と「source」、チェックサムの変更だけで十分だ。

== 鍵認証に失敗しちゃった。。。(ERROR: One or more PGP signatures could not be verified!) ==
最もありえるのが、ファイル検証用の公開鍵が君の個人キーリング内に無いという事だ。鍵をインポートするか、makepkgを行なう際に「--skippgpcheck」で一時的に無効にするかしてクレメンス。