Étant un des premiers à adopter et à utiliser les versions quotidiennes 11.04, je rencontre parfois une situation où certains packages nécessitent des versions antérieures d'autres packages que ceux que j'ai installés. Habituellement, les versions plus récentes (mais refusées) des packages nécessaires fournissent toutes les fonctionnalités de leurs anciennes versions.
Si j'utilise dpkg -i --force-depends-version
pour installer des packages dépendants, tout fonctionne bien, je n'ai jamais vu de problème.
Au lieu de télécharger et d'installer manuellement chaque package, puis-je simplement faire croire au système qu'une version spécifique du package est installée lorsqu'il y en a une plus récente? Ou existe-t-il un --force-depends-version
équivalent clé pour apt-get
?
Même si une réponse a déjà été acceptée, le fait de souligner que ce qui est accepté transmet mieux le processus:
Il y a un paquet Debian appelé
equivs
qui est capable de créer des paquets factices. Installez-le en exécutantsudo apt-get install -y equivs
Une fois installé, vous générez un modèle de fichier "contrôle" à l'aide de la commande suivante:
equivs-control postfix
(remplacezpostfix
par le nom de votre package). Dans mon cas, je pourrais utiliser un autre nom de package, par exemplepostfix-custom
ou quoi que ce soit, mais faire remplir mon package personnalisé ouProvides
la dépendance d'installation depostfix
(remplacer à nouveaupostfix
pour le package que vous voulez.Une fois que le fichier de contrôle du modèle est généré, je supprime généralement un grand nombre des instructions commentées (instructions commençant par
#
). L'une que j'aime garder spécifiquement est laProvides:
déclaration où je peux dire que mon paquet fournit la capacité offerte par l'autre paquet que j'essaie de simuler, par exemple,Provides: postfix
indique au mécanisme de résolution de dépendances Debian / Ubuntu que mon paquet - de n'importe quel nom - fournit les mêmes capacités que le package cible, à nouveaupostfix
ou autre. Cela me permet de nommer mon package indépendamment du package cible pour éviter toute confusion. Erlang Factory le fait avec ses trucs, par exempleesl-erlang
fourniterlang
.Enfin, une fois le fichier de contrôle du modèle créé, vous utilisez
equivs-build
pour générer le faux package, par exempleequivs-build /path/to/generated/control/file
.Il faut quelques secondes pour créer le package, puis vous pouvez exécuter
sudo dpkg -i my_package_name*.deb
Pour les utilisateurs avancés, si votre fichier de contrôle de modèle a une
Requires:
ligne de dépendance, vous souhaiterez peut-être utiliser un outil commegdebi
pour installer votre package ainsi que les différents packages qu'il déclare comme dépendances.la source