Je veux installer emacs-snapshot depuis http://emacs.orebokech.com Mais il y a déjà un emacs-snapshot dans les dépôts d'Ubuntu.
Comment puis-je spécifier le dépôt à partir duquel un paquet sera installé?
Je veux installer emacs-snapshot depuis http://emacs.orebokech.com Mais il y a déjà un emacs-snapshot dans les dépôts d'Ubuntu.
Comment puis-je spécifier le dépôt à partir duquel un paquet sera installé?
Vous pouvez spécifier un référentiel avec l'option -t
. Par exemple, j'ai ajouté le référentiel suivant à /etc/apt/sources.list
pour installer la dernière version d'Iceweasel :
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release
Comme vous le savez, il existe le même package iceweasel
dans le référentiel officiel de Debian. Si je veux installer Iceweasel à partir de ce référentiel spécifique, j'exécute :
apt-get install -t squeeze-backports iceweasel
à partir de la page de manuel d'apt-get :
-t, --target-release, --default-release
Cette option contrôle l'entrée par défaut du moteur de stratégie, elle crée une épingle par défaut à la priorité 990 en utilisant la chaîne de sortie spécifiée. Cela remplace les paramètres généraux dans /etc/apt/preferences. Les packages spécifiquement épinglés ne sont pas concernés par la valeur de cette option. En bref, cette option vous permet de contrôler simplement à partir de quel référentiel les packages de distribution seront récupérés. Quelques exemples courants pourraient être -t '2.1*', -t unstable ou -t sid. Élément de configuration : APT::Default-Release ; voir également la page de manuel apt_preferences(5).
Je pense que c'est une meilleure solution,
J'ai trouvé une solution de contournement. Tout d'abord, j'ai dû trouver les dépôts qui avaient le paquet :
$ apt-cache showpkg emacs-snapshot
Package: emacs-snapshot
Versions:
1:20100111-1~lenny1 (/var/lib/apt/lists/emacs.orebokech.com_dists_lenny_main_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/emacs.orebokech.com_dists_lenny_main_binary-amd64_Packages
MD5: 906df684c212eabe267e6b5c2e8c2032
1:20090909-1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-amd64_Packages
MD5: 906df684c212eabe267e6b5c2e8c2032
Reverse Depends: ...
...
Dans la section Versions:. Je vois les versions provenant de différents dépôts :
Alors maintenant on dit simplement à apt ou aptitude d'installer cette version spécifique :
$ sudo aptitude install emacs-snapshot=1:20100111-1~lenny1
nom-du-paquet\=nom_de_version
Victoire.
Je ne sais toujours pas comment utiliser un dépôt spécifique. Mais dans ce cas, une version spécifique était suffisante.
Il existe un fichier de préférences pour apt. Je pense qu'il se trouve sous /etc/apt, mais je ne suis pas sûr à 100%. Vous pouvez y définir la priorité d'un paquet provenant d'un dépôt pour qu'elle soit plus élevée que pour le même paquet provenant du dépôt Ubunto. Pour la syntaxe exacte, consultez le manuel apt-get. Modifiez le fichier, puis installez comme d'habitude avec apt-get, il récupérera à partir de l'origine la plus prioritaire. Assurez-vous simplement au préalable que le paquet de ce dépôt est compilé pour votre distribution (par exemple, un binaire Debian peut rechercher des dépendances dans les mauvais emplacements) et pour votre version du noyau (cela change assez souvent tout au long du cycle de vie d'une version d'Ubuntu). Sinon, c'est une question de chance si cela fonctionnera.
J'ai rencontré ce problème lorsqu'un paquet que je voulais (helm
), avait un nom qui était utilisé à la fois par le gestionnaire de paquets Kubernetes et aussi par un instrument VST musical de KX Studio.
J'avais les deux dépôts disponibles dans ma liste de sources, mais parce que le helm
de KX Studio avait un numéro de version plus élevé, demander à apt
de l'installer a conduit à l'installation du "mauvais" paquet (puisque je voulais le gestionnaire de paquets Kubernetes). C'était d'autant plus un problème parce que ma distribution continuait à essayer de me faire "mettre à jour" vers le mauvais paquet même après avoir installé celui que je voulais.
J'ai résolu le problème en ajustant en créant un fichier /etc/apt/preferences
avec le contenu suivant :
Package: helm
Pin: origin "baltocdn.com"
Pin-Priority: 999
Consultez man apt_preferences
si vous souhaitez avoir plus de détails sur d'autres options. Notez que baltocdn.com était le dépôt pour le paquet helm que je voulais, donc vous remplaceriez à la fois le nom du paquet et l'origine par ce que vous voulez. Après la mise à jour d'apt
, il ne souhaitait plus me mettre à niveau vers la mauvaise version du paquet !
Dans mon cas, j'ai ajouté un référentiel apt-get pour une branche de développement d'Inkscape. Voici les étapes que j'ai prises pour ajouter la version de développement d'Inkscape :
Listez toutes les sources de référentiels
grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/
Choisissez une source de référentiel et listez tous les packages (dans mon cas, le ppa inkscape)
grep -h -P -o "^Package: \K." /var/lib/apt/lists/ppa.launchpad.net_inkscape | sort -u
Installez le package spécifique
sudo apt install -t hirsute inkscape-trunk
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.