Arch Linux の AUR とは何ですか? それを使用する必要がありますか?
公開: 2023-06-23AUR は Arch Linux の最高傑作の 1 つであり、何千もの追加ソフトウェア パッケージを提供します。 しかし、このユーザー主導のリポジトリは安全に使用できるのでしょうか、それとも使用を避けるべきでしょうか?
AURとは何ですか?
AUR 使用の危険性
AUR の安全性: パッケージの詳細と評判を確認する
PKGBUILD およびその他のファイルの内容を確認する
他の AUR ユーザーを助けることができます
AURとは何ですか?
AUR (Arch User Repository) は、Arch Linux ユーザーに 85,000 以上のソフトウェア パッケージを提供するコミュニティ主導のソフトウェア リポジトリです。 コア リポジトリ、追加リポジトリ、マルチライブラリ リポジトリなどの他の Arch リポジトリとは異なり、AUR はすぐにインストールできるパッケージをホストしません。 実際、バイナリ ファイルやパッケージ ソフトウェアはまったくホストされません。
AUR は、PKGBUILD と呼ばれるパッケージ ビルド ファイルをホストします。 これらは、Arch makepkg
ツールによって実行されるシェル スクリプトです。 makepkg
を実行すると、「PKGBUILD」というファイルが検索されます。 見つかった場合は、それを開き、その中の指示に従ってコンピュータ上にソフトウェア パッケージ アーカイブを作成します。 コマンド ラインでのコンパイルに慣れている場合は、PKGBUILD ファイルとmakepkg
、MAKEFILE やmake
ユーティリティと同様の方法で連携して動作します。
PKGBUILD 命令は、ソース コード ファイルおよびパッケージ アーカイブの作成に必要なその他のファイルをダウンロードします。 pacman
ツールが自動的に呼び出され、パッケージ アーカイブからソフトウェアがインストールされます。
混乱を招く危険がありますが、一部の AUR パッケージはコンパイル済みのバイナリを提供します。 ただし、これらのバイナリは AUR でホストされず、インターネット上の別の場所に保存されます。 これらのパッケージの AUR エントリには、コンパイル済みのバイナリをコンピュータにダウンロードする PKGBUILD ファイルのみが保持されます。
AUR を使用すると、誰でも他の Arch ユーザーが利用できるようにしたいソフトウェアの PKGBUILD を作成できます。 これらは、オープン ソース パッケージまたはクローズド ソース パッケージ、あるいは商用ソフトウェアの場合もあります。 十分なユーザー投票を獲得した AUR パッケージは、コミュニティ リポジトリと呼ばれる通常の Arch リポジトリに昇格できます。
AUR の問題は、基本的な部分まで突き詰めると明らかになります。 これは、インターネット上のランダムなユーザーからのスクリプトのコレクションです。 そして、彼らはあなたのコンピュータ上でそれらを実行することを望んでいます。
リスクを軽減するために、アップロードされたスクリプトは、信頼できるユーザーと呼ばれる、資格のある尊敬されるボランティアによってレビューされます。 信頼できるユーザーは PKGBUILDS を検査およびテストし、危険な間違いや悪意のある意図を含むものを削除します。
関連: Arch Linuxをアップデートする方法
AUR 使用の危険性
これは非常にまれな出来事ですが、信頼できるユーザーの勤勉にもかかわらず、物事がネットをすり抜けてしまうことがあります。 2015 年に遡ると、以前に Steam ディレクトリを新しい場所に移動していた場合、Valve Software Steam スクリプトによってホーム ディレクトリが消去されました。
さらに禍々しいのは 2005 年の事件で、孤立した AUR パッケージが新しいメンテナによって引き継がれ、意図的に PKGBUILD ファイルに悪意のあるコードが追加されました。 これらの例は古く、珍しいものですが、同じことが再び起こる可能性があります。
もちろん、十分なスキルがある場合は、PKGBUILD ファイルの内容を自分で確認することができます。 この透明性は AUR の強みの 1 つですが、その恩恵を受けるには十分なスクリプトの知識が必要です。 これは、PKGBUILD ファイル自体のみを対象としています。 大量のアプリケーションのソース コードを取り込む場合は、理論的にはそれもチェックする必要があります。
AUR を使用する場合のその他の危険性は、配布に基づいています。 すべての Arch ベースのディストリビューションが、AUR が完璧に動作するほど十分に Arch に似ているわけではありません。 AUR は、正規の Arch Linux と、完全にパッチが適用され更新されたバージョンにインストールされることを前提としています。 たとえば、Manjaro は、Arch ベースであるにもかかわらず、AUR を正式にサポートしていません。
しかし、ディストリビューションが AUR をサポートしているとすると、ソース コードやシェル スクリプトを理解するかどうかに関係なく、AUR をできるだけ安全に使用するために何ができるでしょうか?
AUR の安全性: パッケージの詳細と評判を確認する
コードレビューを行わなくても、AUR パッケージが信頼できるかどうかを判断するために実行できる手順があります。
AUR でパッケージを探す
AUR にはパッケージごとにページがあります。 パッケージの Web ページには、パッケージ、パッケージに含まれる依存関係、パッケージに依存するパッケージ、およびその他の役立つ情報が説明されています。 AUR にアクセスしてパッケージを検索することで調査を開始します。
その評判は何ですか?
パッケージはユーザーによって投票でき、各パッケージには人気スコアも与えられます。 投票数が多ければ多いほど、人気が高いほど良いことになります。 これは、パッケージがよく知られており、広く使用されていることを意味します。 つまり、評判の良いパッケージです。
パッケージの評判は、その信頼性を示す良い指標です。 より多くの人がそれを使用し、それに投票するほど、より快適に使用できるようになります。
アクティビティの日程を確認する
「パッケージの詳細」セクションには、投票数、人気スコア、および 2 つの日付が表示されます。 1 つはパッケージが最初に AUR に導入されたとき、もう 1 つはパッケージが最後に更新されたときです。
「最終更新日」は、パッケージがアクティブにメンテナンスされているかどうかを示します。 長期間休止していたパッケージは注意して扱う必要があります。
アップストリーム URL は有効な場所ですか?
また、「アップストリーム URL」をチェックし、パッケージまたはプロジェクトの有効な Web ページまたはコード リポジトリに移動していることを確認します。 そうでない場合は、何かが間違っています。
ユーザーのコメントを読む
各 AUR ページの下部にユーザーのコメントがあります。 これらは多くのページにまたがる場合があります。 他のユーザーがパッケージについて何と言っているか、どのような質問があるかを確認してください。 また、提起された問題に対してどのような解決策が提供されるのかも確認してください。 最近のコメントはありますか? このパッケージにはまだアクティブなユーザーベースがいますか?
登録して参加する
AUR に登録して無料アカウントを作成すると、コメントを残したり、質問したりできるようになります。 また、フォーラムやサブレディットなどの他のリソースを使用して、パッケージについて質問してください。
シェル スクリプトを理解していなくても、確認できることがいくつかあります。
PKGBUILD およびその他のファイルの内容を確認する
AUR にアクセスする一般的な方法は、 yay
などのコマンド ライン「AUR ヘルパー」を使用することですが、実践的な手動の方法で AUR を使用することもできます。
優れた AUR ヘルパーでは、PKGBUILD ファイルを検査するオプションが提供され、続行したくない場合はインストールを停止します。 手動プロセスでは、AUR でパッケージを検索し、PKGBUILD ファイルをダウンロードして、使用する前に検査します。 確認した後で続行してもよい場合は、 makepkg
手動で実行します。
AUR ヘルパーがバックグラウンドで実行している仕組みを理解できるように、少なくとも 1 つのパッケージを手動でインストールすることをお勧めします。 例として yay AUR ヘルパーを使用します。
このパッケージは 2016 年に最初に送信され、最後に更新されたのは 2023 年 5 月でした。この記事の執筆時点では、これはごく最近の更新です。 また、最初の提出者、現在のメンテナ、およびソフトウェアを最後にパッケージ化した人がすべて同一人物であることも注目に値します。 その継続性は良い兆候です。
「パッケージの詳細」セクションの「Git Clone URL」URL リンクをクリックしてクリップボードにコピーします。
ターミナル ウィンドウで「git clone」とスペースを入力し、Shift+Ctrl+V を押して URL をコマンド ラインに貼り付けます。 「Enter」を押してダウンロードを開始します。
git クローン https://aur.archlinux.org/yay.git
ダウンロードが完了したら、新しい「yay」ディレクトリに移動します。
CDやったー
どのようなファイルがあるのか見てみましょう。
ls
PKGBUILD ファイルという 1 つのファイルがあります。 多くの場合、追加のヘルパー ファイルが 1 つまたは 2 つあります。 そちらもご覧ください。 単一のファイルを読み取るために使用するless
ます。
少ないPKGBUILD
PKGBUILD ファイルはどの URL を使用しますか?
規則に従った整形式の PKGBUILD ファイルは、使用する URL を保持する変数を作成します。 これにより、PKGBUILD が参照する URL のファイルの先頭にきちんとしたリストが表示されます。 この場合、存在するのは 1 つだけです。
yay
プロジェクトの GitHub ページを指していることがわかります。
GitHub ページは、このパッケージの AUR ページにリストされているメンテナと同じ名前のユーザーが所有しています。 これら 2 つは、これが安全なパッケージであることを示す良い証拠です。
しかし、続けてもう少し深く見ていきます。
ダウンロードコマンドを探す
ファイル内でwget
またはcurl
が使用されているかどうかを検索するには、 less
検索機能を使用します。 これらのツールは両方とも、リモート ファイルを取得するために使用できます。 行儀の良い PKGBUILD では、そのようなアクティビティは必要ありません。
何らかの発生が見つかった場合は、危険信号として扱い、それが無害であると確信するまでパッケージをインストールしないでください。 wget
またはcurl
コマンドが参照しているURLは何ですか? それらは正当なものであり、パッケージに関連しているように見えますか?
信頼できるソースから PKGBUILD が信頼できるという確認が得られ、それが規則に従わない方法で記述されている場合でも、インストールすることを選択できます。
rm、mv、およびその他の危険なコマンドを探す
同様に、PKGBUILD ファイルにrm
またはmv
コマンドを含める必要はなく、「/dev」ディレクトリ内の何かを参照する必要もありません。 PKGBUILD がpacman
直接呼び出す場合、またはsystemctl
、 systemd
、またはgrub
などのその他の重要なシステム コンポーネントに言及する場合は、PKGBUILD ファイルを危険なものとして扱い、実行しないでください。
シェル スクリプトを読めなくても、これまでに使用した手順を実行できます。 シェル スクリプトの知識がある場合は、PKGBUILD で実際のコードを確認できます。
難読化されたコードに注意する
悪意のあるコードを作成する人は、コードを難読化することでその意図を隠そうとすることがよくあります。 彼らはミニマリストで簡潔な難解な構文を使用しているため、何をしようとしているのかを解読するのは困難です。 リダイレクトを使用する行、またはsed
またはawk
を呼び出す行を見つけた場合は、それらを不審なものとして扱います。
これらの行をコピーして、explainshell.com などのオンライン パーサーにドロップすると、それらが解凍され、実際に何が行われるかを確認できます。 大括弧、セミコロン、アンパサンドが密集した混乱に直面した場合は、オンライン パーサーを使用して、その行が行おうとしていることを正しく解釈していることを再確認する価値があります。 しかし一般に、コードが読みにくいということは危険信号です。
あなたの /home はあなたの城であるべきです
PKGBUILD のコンパイルとビルドはchroot
環境で行われます。
これらは、コンピュータの残りのファイル システムへのアクセスを制限し、他のシステム コマンドへのアクセスを減らすことにより、開発者がサンドボックス プロセスを実行できるようにする分離されたミニ ファイル システムです。
PKGBUILD がホーム ディレクトリを直接操作している場合は、それを警告フラグとして扱います。 実行する前に、その動作を完全に理解してください。
他の AUR ユーザーを助けることができます
非常に人気のあるパッケージであれば、安全である可能性が非常に高いです。 ユーザー数が多いため、問題はより迅速に発見され、より迅速に報告されます。 見つけた問題を報告したり、評判を高めるために良いパッケージに賛成票を投じたりすることで、自分の役割を果たすことができます。
パッケージにインストールしたくないような問題があることがわかった場合、そのパッケージが必要だったために窮地に陥る可能性があります。 今後の 1 つの方法は、その特定のニーズを満たすことができる他のパッケージの提案をフォーラムで尋ねることです。
Linux では通常、特定の猫の皮を剥ぐさまざまな方法があります。
関連: GUI から Arch Linux をインストールする方法