¿Cómo consigo que Portage descargue un paquete y no haga nada más?

¿Cómo consigo que Portage descargue un paquete y no haga nada más?

Después de tener algunos problemas para conectarme a un servidor TLS y luego darme cuenta de que app-misc/ca-certificateshabía un año y cuatro meses de retraso, sentí curiosidad por saber qué ha cambiado desde entonces 20140927.3.17.2. Pensé en tomar una copia del paquete, extraer todo y husmear. emergeApareció un vistazo rápido a la página del manual --fetchonly( -f):

En lugar de crear ningún paquete, simplemente realice búsquedas para todos los paquetes (obtenga cosas de SRC_URI según la configuración USE).

¡Suena como lo que quiero! Vamos.

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

…¿ehhh? Bueno… no veo por qué no. Tener privilegios de root.

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

¿Qué? No…solo quiero descargar el paquete; En realidad, no quiero instalarlo ni realizar ningún otro cambio en el sistema.

Una búsqueda más exhaustiva en la página del manual no arrojó nada más que pareciera relevante (excepto --fetch-all-uri| -F, que me da el mismo resultado). ¿Por qué se emergeinsiste aquí en acceso privilegiado y cambios de palabras clave? ¿Qué seríaen realidadestar haciendo, además de simplemente descargar un archivo tar, verificarlo y volcarlo en el directorio de trabajo o en algún lugar del caché?

Respuesta1

La pregunta probablemente debería ser más como: "¿Cómo hago para que Portage descarguefuentes del paquete, ¿y no hacer nada más?". La razón por la que no funciona emergees porque así es como está diseñado emerge. emerge simplemente no es la herramienta adecuada para hacer este tipo de trabajo y, con suerte, nunca lo será. Para lograr realmente lo que desea , tienes que usar ebuildel comando ( man 1 ebuild), así:

ebuild <PATH_TO_EBUILD> fetch

Este comando descarga (y verifica) todo lo que hay en $SRC_URIsu archivo $DISTDIR.

Para obtener el valor de las variables:

Para realmente recuperar las fuentes en un directorio de su elección, simplemente falsifique la $DISTDIRvar de esta manera:

DISTDIR=<DIR> ebuild <PATH_TO_EBUILD> fetch

Entonces, si usa rutas de transporte predeterminadas y desea descargar fuentes a su directorio de inicio, emita esto:

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

información relacionada