Wie bekomme ich Portage zum Herunterladen eines Pakets und nichts weiter?

1584
Blacklight Shining

Nachdem ich Probleme hatte, sich mit einem TLS-Server zu verbinden, und bemerkte, dass dies app-misc/ca-certificatesein Jahr und vier Monate zurückliegt, wurde ich neugierig, was sich seitdem geändert hat 20140927.3.17.2. Ich dachte mir, ich schnappte mir einfach eine Kopie des Pakets, extrahierte alles daraus und pochte herum. Ein Skim der emergeHandbuchseite ist aufgedreht --fetchonly( -f):

Statt irgendwelche Paketbildung durchzuführen, führen Sie einfach Abrufe für alle Pakete durch (holen Sie Dinge von SRC_URI basierend auf der USE-Einstellung ab).

Klingt nach was ich will! Lass uns gehen.

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

… Uhhh? Nun, ich verstehe nicht warum. Besitze Root-Berechtigungen.

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 

Was? Nein. Ich möchte nur das Paket herunterladen. Ich möchte es nicht wirklich installieren oder andere Änderungen am System vornehmen.

Nach einer gründlicheren Suche der Handbuchseite wurde nichts anderes gefunden, das relevant aussah (mit Ausnahme von --fetch-all-uri| -F, was zu demselben Ergebnis führt). Warum emergebestehen Sie hier auf privilegierten Zugriff und Keyword-Änderungen? Was würde es wirklich tun, außer nur einen Tarball herunterzuladen, zu überprüfen und in das Arbeitsverzeichnis oder einen Cache irgendwo abzulegen?

1
Übrigens Das veraltete "app-misc / ca-certificate" im Stable Branch ist ein bekannter Fehler, der auf eine Lösung wartet - https://bugs.gentoo.org/show_bug.cgi?id=561962 rindeal vor 8 Jahren 0

1 Antwort auf die Frage

3
rindeal

Die Frage sollte wahrscheinlich mehr lauten: "Wie bekomme ich, dass Portage Paketquellen herunterlädt und nichts mehr tut?". Der Grund, warum es nicht funktioniert, emergeist, weil Emerge so gestaltet ist. emerge ist einfach nicht das richtige Werkzeug für diese Art von Arbeit und wird es hoffentlich nie geben. Um tatsächlich das zu erreichen, was Sie möchten, müssen Sie ebuildcommand ( man 1 ebuild) wie folgt verwenden:

ebuild <PATH_TO_EBUILD> fetch 

Dieser Befehl lädt (und überprüft) alles in $SRC_URIIhrem $DISTDIR.

So erhalten Sie den Wert der Variablen:

  • <PATH_TO_EBUILD>
  • <REPO_DIR>: portageq get_repo_path / gentoo
  • $DISTDIR: portageq distdir

Um die Quellen tatsächlich in ein Verzeichnis Ihrer Wahl zu laden, spoofen Sie die $DISTDIRvar wie folgt:

DISTDIR=<DIR> ebuild <PATH_TO_EBUILD> fetch 

Wenn Sie also standardmäßige Portage-Pfade verwenden und Quellen in Ihr Heimatverzeichnis herunterladen möchten, geben Sie Folgendes ein:

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