web-dev-qa-db-ja.com

PKGBUILDをどのように検査する必要がありますか?

AURを使用すると、PKGBUILDファイルを手動で確認し、スクリプトをインストールする必要があります。

あなたは実際にこれを何/どのように行うことになっていますか?探すべきいくつかの危険信号は何ですか、「大丈夫」である合法的なパッケージによって行われる一般的なことは何ですか?

多くの場合、私が見ているパッケージは、いくつかのスクリプトまたはアーカイブをダウンロードしてから、それらの中で何かを実行します。 PKGBUILD自体は何も悪いことをしているようには見えませんが、何百ものファイルでアーカイブをカールしてから実行しています。ほとんどのAURツールには、PKGBUILDとインストールスクリプト以外のものを見る方法すらなく、それらだけに基づいて決定を下すことが期待されます。ダウンロードしたファイルを探し出し、数時間(または数日)かけてすべてのコードを読んでから(おそらく自分のプログラミング知識を超える)、戻ってAURパッケージのインストールを「決定」する必要がありますか?

2
Bagalaw

PKGBUILDは単なるbashスクリプトです。それらは読みやすいように設計されています。

Arch Wikiには さまざまな関数のガイド があり、それぞれに何が表示されるかを期待する必要があります。

ここでの奇妙なバリエーション、特にprepareまたはinstall関数のバリエーションは、注意深く精査する必要があります。ファイルの削除、または$HOMEまたは$PATHに触れるインストールは、疑いを持って処理し、十分に調査する必要があります。

これらには、 validpgpkeys 、およびダウンロードしたソースが有効であることを確認する整合性チェックサムが含まれます。 Makepkgは、これらのいずれかが失敗した場合に警告を発します。これは、先に進まないという大きな危険信号になります。

Arch Packaging standard を読んで、PKGBUILDを作成する方法を理解することもできます。

実際のアップストリームソースについては、それが有効であると仮定すると、それはあなただけが行うことができる呼び出しです。悪意のあるソフトウェアが実際に存在しますが、信頼できるユーザーはそれをAURから保護するという優れた仕事をしています。他のソースからのPKGBUILDを使用している場合は、ご自身で行ってください。

壊滅的な結果をもたらす可能性のある パッケージャーエラーを突破するPKGBUILD もあります。したがって、実行する前に、可能な限りそれらを読むことは理にかなっています。

4
jasonwryan