Est-il possible de télécharger toutes les dépendances avec yumdownloader, même si elles sont déjà installées?
J'essaie de créer un référentiel local et ne souhaite inclure que les packages dont nous avons besoin.
yum
repository
Luke
la source
la source
--requires
--resolve
option de la repoquerie ne fonctionne pas récursivement pour les dép.--recursive
option à la commande repoquery pour qu'elle fonctionne de manière récursive.yum-utils
projet en amont . La raison pour laquelle il télécharge plus de paquets que prévu est que la fonctionrpmUtils.arch.getArchList()
renvoie toutes les architectures compatibles pour celle donnée. Cela inclut par exemple l'noarch
architecture qui peut être nécessaire auxx86_64
paquets. Vous pouvez vérifier la source: yum.baseurl.org/gitweb?p=yum.git;a=blob;f=rpmUtils/…Pour l'information de tous,
yumdownloader
ne fait pas le travail. Pour ceux qui ont une expérience de la gestion de paquets avec `yum, il est naturel de s'attendre à ce que la ligne de commande suivante télécharge de manière récursive un RPM de paquet et toutes ses dépendances:Mais ce n'est pas le cas. Peut-être qu’il affiche les dépendances de premier niveau ou celles qui ne sont pas déjà installées. Je ne suis pas sûr.
Voici une méthode qui fonctionne sur CentOS 6.5. Suivez les étapes pour installer le plugin downloadonly
yum
tel que donné par Red Hat . Fondamentalement, sur CentOS 6.x, faites:Ensuite, utilisez le plugin en combinaison avec le
--installroot
commutateur deyum
. Cela empêcheyum
de résoudre et ensuite d'ignorer les dépendances déjà installées sur le système.Vous auriez téléchargé les RPM du package
<package>
et toutes ses dépendances dans le répertoire<rpm_dir>
. Exemple, avec Git:la source
sudo yum install yum-plugin-downloadonly.noarch
ditNo package yum-plugin-downloadonly.noarch available.
quoi faire?yum search yumdownloader
retouryum-utils.noarch
Cannot find a valid baseurl for repo: base/$releasever/x86_64
lorsque j'ajoute le--installroot
drapeau.Cannot find a valid baseurl...
problème sur Centos 7 avec la solution sur ce lien : Ajouter le--releasever=/
paramètreJe me rends compte que le fil est vieux, mais au cas où quelqu'un tomberait dessus, vous pouvez utiliser yum pour accomplir le comportement souhaité.
Commencez par installer le plugin downloadonly (instructions pour RHEL): (RHEL5)
(RHEL6)
Ensuite, exécutez la commande comme suit:
Si vous ignorez le
--downloaddir
yum sera automatiquement téléchargé sur/var/cache/yum
Donc, à moins que vous ayez besoin d'utiliser yumdownloader en particulier, je pense que ce serait le moyen le plus simple d'atteindre l'objectif.
la source
Si vous venez du futur (Fedora 23+), où miam est remplacé par dnf, ce script bash pourrait vous être utile.
rpmDownloader:
rpmResolver:
la source
J'ai trouvé que dans la pratique, la construction d'une pension comme celle-ci était difficile à maintenir. Nous avons construit ce repo parce que:
Les problèmes que nous pouvons traverser étaient:
En fin de compte, la meilleure solution à notre problème consistait à utiliser un proxy pour le dépôt officiel et à mettre en cache les packages que nous utilisions. Cela fonctionne bien parce que:
Nous avons utilisé Nginx et le support de proxy intégré.
la source
S'appuyant sur la réponse de Luke et les commentaires ...
A ce jour
repotrack
correspondra à toutes les architectures suivantes quandx86_64
est spécifié:x86_64
,athlon
,i686
,i586
,i486
,i386
etnoarch
.Pour mes fins , je suis seulement intéressé par
x86_64
etnoarch
paquets, et je sais que ma distribution n'a pas deathlon
paquets.La commande suivante obtient une liste des URL de packages, filtre les
i?86
architectures et affiche les noms des packages au fur et à mesure de leur téléchargement:Notez que
repotrack
cela ne vous avertit pas s'il ne peut pas trouver un package qui satisfait une dépendance dans vos dépôts activés. Il passe silencieusement.la source
Essayez aussi
par exemple:
Source: https://www.thegeekdiary.com/downloading-rpm-packages-with-dependencies-yumdownloader-vs-yum-downloadonly-vs-repoquery/
la source