¿Hay alguna manera de descargar todas las dependencias con yumdownloader, incluso si ya están instaladas?
Estoy tratando de crear un repositorio local y solo quiero incluir los paquetes que necesitamos.
yum
repository
Luke
fuente
fuente
--requires
--resolve
opción de repoquery no funciona de forma recursiva para los deps.--recursive
opción al comando repoquery para que funcione recursivamente.yum-utils
proyecto ascendente . La razón por la que descarga más paquetes de lo esperado es porque la funciónrpmUtils.arch.getArchList()
devuelve todas las arquitecturas compatibles para el dado. Incluye, por ejemplo, lanoarch
arquitectura que pueden necesitar losx86_64
paquetes. Puede consultar la fuente: yum.baseurl.org/gitweb?p=yum.git;a=blob;f=rpmUtils/…Para información de todos,
yumdownloader
no hace el trabajo. Para cualquier persona con alguna experiencia en administración de paquetes con `yum, es natural esperar que la siguiente línea de comandos descargue recursivamente un paquete RPM y todas sus dependencias:Pero no lo hace. Puede ser que imprima dependencias de primer nivel o aquellas que aún no están instaladas. No estoy seguro.
Aquí hay un método que funciona en CentOS 6.5. Siga los pasos para instalar el plugin para DownloadOnly
yum
dada por Red Hat . Básicamente, en CentOS 6.x, haga:Luego utilice el complemento en combinación con el
--installroot
interruptor deyum
. Esto evita que seyum
resuelva y luego salte las dependencias que ya están instaladas en el sistema.Debería descargar los RPM del paquete
<package>
y todas sus dependencias en el directorio<rpm_dir>
,. Ejemplo, con Git:fuente
sudo yum install yum-plugin-downloadonly.noarch
diceNo package yum-plugin-downloadonly.noarch available.
qué hacer?yum search yumdownloader
regresayum-utils.noarch
Cannot find a valid baseurl for repo: base/$releasever/x86_64
cuando agrego la--installroot
bandera.Cannot find a valid baseurl...
problema en Centos 7 con la solución en este enlace : Agregue el--releasever=/
parámetroMe doy cuenta de que el hilo es antiguo, pero en caso de que alguien se encuentre con esto, puede usar yum para lograr el comportamiento deseado.
Primero instale el complemento de descarga solamente (instrucciones para RHEL): (RHEL5)
(RHEL6)
Luego ejecute el comando de la siguiente manera:
Si ignora el
--downloaddir
yum se descargará automáticamente a/var/cache/yum
Entonces, a menos que necesite usar yumdownloader específicamente, creo que esta sería la forma más simple de lograr el objetivo.
fuente
Si eres del futuro (Fedora 23+), donde yum está siendo reemplazado por dnf, es posible que este script bash sea útil.
rpmDownloader:
rpmResolver:
fuente
Encontré que en la práctica construir un repositorio como este es difícil de mantener. Construimos este repositorio porque:
Los problemas que podemos enfrentar fueron:
Al final, la mejor solución a nuestro problema fue proxy de los repositorios oficiales y almacenar en caché los paquetes que utilizamos. Esto funciona bien porque:
Utilizamos Nginx y el soporte de proxy incorporado.
fuente
Sobre la base de la respuesta de Luke y los comentarios ...
Al escribir estas líneas
repotrack
coincidirá con todas las siguientes arquitecturas cuandox86_64
se especifica:x86_64
,athlon
,i686
,i586
,i486
,i386
, ynoarch
.Para mis propósitos sólo estoy interesado en
x86_64
ynoarch
paquetes, y sé que mi distribución no tiene ningúnathlon
paquetes.El siguiente comando obtiene una lista de URL de paquetes, filtra
i?86
arquitecturas e imprime los nombres de los paquetes a medida que se descargan:Tenga en cuenta que
repotrack
no le advierte si no puede encontrar un paquete que satisfaga una dependencia en sus repositorios habilitados. Lo omite en silencio.fuente
Intenta también
p.ej:
Fuente: https://www.thegeekdiary.com/downloading-rpm-packages-with-dependencies-yumdownloader-vs-yum-downloadonly-vs-repoquery/
fuente