Portage でパッケージをダウンロードして、それ以上何もしないようにするにはどうすればよいですか?

Portage でパッケージをダウンロードして、それ以上何もしないようにするにはどうすればよいですか?

TLS サーバーに接続する際に問題が発生し、app-misc/ca-certificates1 年 4 か月遅れていることに気付いた後、 以降何が変わったのか興味が湧きました20140927.3.17.2。パッケージのコピーを入手し、すべてを抽出して調べてみることにしました。emergeマニュアル ページをざっと見たところ、次の内容が見つかりました--fetchonly( -f)。

パッケージの構築を行う代わりに、すべてのパッケージのフェッチを実行します (USE 設定に基づいて SRC_URI からフェッチします)。

まさに私が望んでいたものですね! 行きましょう。

caramel:~ blackl% emerge --fetchonly '='app-misc/ca-certificates-20151214.3.21
emerge: portage group access is required

…えーっと?まあ…ダメな理由はわかりません。ルート権限が必要です。

caramel:~ blackl% sudo emerge --fetchonly '='app-misc/ca-certificates-20151214.3.21
Calculating dependencies... done!
[ebuild     U ~] app-misc/ca-certificates-20151214.3.21 [20140927.3.17.2]

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by =app-misc/ca-certificates-20151214.3.21 (argument)
=app-misc/ca-certificates-20151214.3.21 ~amd64

何ですか? いいえ...パッケージをダウンロードしたいだけです。実際にインストールしたり、システムに他の変更を加えたりするつもりはありません。

マニュアルページをもっと徹底的に検索しても、関連しそうなものは何も見つかりませんでした(--fetch-all-uri|を除いて-F、同じ結果が得られました)。なぜemergeここで特権アクセスとキーワードの変更を主張するのでしょうか?本当にtarball をダウンロードして検証し、作業ディレクトリまたはどこかのキャッシュにダンプする以外に、何ができるでしょうか?

答え1

質問はおそらく「Portageをダウンロードするにはどうすればいいですか?パッケージソース、そしてそれ以上何もしない?"。 を使用しても機能しない理由は、 emerge がそのように設計されているからです。emerge は、単にこの種の作業を行うのに適したツールではなく、今後も適さないことを願っています。実際に目的を達成するには、次のようにコマンド ( )emergeを使用する必要があります。ebuildman 1 ebuild

ebuild <PATH_TO_EBUILD> fetch

$SRC_URIこのコマンドは、 内のすべてのものをダウンロード (および検証) します$DISTDIR

変数の値を取得するには:

実際にソースを任意のディレクトリに取得するには、$DISTDIR次のように var を偽装するだけです。

DISTDIR=<DIR> ebuild <PATH_TO_EBUILD> fetch

したがって、デフォルトの Portage パスを使用してソースをホーム ディレクトリにダウンロードする場合は、次のコマンドを発行します。

DISTDIR=~ ebuild /usr/portage/app-misc/ca-certificates/ca-certificates-20151214.3.21.ebuild fetch

関連情報