¿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--resolveopción de repoquery no funciona de forma recursiva para los deps.--recursiveopción al comando repoquery para que funcione recursivamente.yum-utilsproyecto 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, lanoarcharquitectura que pueden necesitar losx86_64paquetes. Puede consultar la fuente: yum.baseurl.org/gitweb?p=yum.git;a=blob;f=rpmUtils/…Para información de todos,
yumdownloaderno 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
yumdada por Red Hat . Básicamente, en CentOS 6.x, haga:Luego utilice el complemento en combinación con el
--installrootinterruptor deyum. Esto evita que seyumresuelva 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.noarchdiceNo package yum-plugin-downloadonly.noarch available.qué hacer?yum search yumdownloaderregresayum-utils.noarchCannot find a valid baseurl for repo: base/$releasever/x86_64cuando agrego la--installrootbandera.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
--downloaddiryum se descargará automáticamente a/var/cache/yumEntonces, 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
repotrackcoincidirá con todas las siguientes arquitecturas cuandox86_64se especifica:x86_64,athlon,i686,i586,i486,i386, ynoarch.Para mis propósitos sólo estoy interesado en
x86_64ynoarchpaquetes, y sé que mi distribución no tiene ningúnathlonpaquetes.El siguiente comando obtiene una lista de URL de paquetes, filtra
i?86arquitecturas e imprime los nombres de los paquetes a medida que se descargan:Tenga en cuenta que
repotrackno 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