43 votes

Comment puis-je spécifier le référentiel à partir duquel un package sera installé ? (emacs-snapshot)

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é?

37voto

hukko Points 636

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,

Source de :https://askubuntu.com/questions/27362/how-to-only-install-updates-from-a-specific-repository/57749#57749

17voto

Radio Dask Points 29

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 :

  • 1:20100111-1~lenny1
  • 1:20090909-1

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.

1voto

rumtscho Points 3804

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.

1voto

aardvarkk Points 1647

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 !

0voto

Ben Winding Points 183

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 :

  1. Listez toutes les sources de référentiels

    grep -r --include '*.list' '^deb ' /etc/apt/sources.list /etc/apt/sources.list.d/

entrer la description de l'image ici

  1. 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

entrer la description de l'image ici

  1. Installez le package spécifique

    sudo apt install -t hirsute inkscape-trunk

entrer la description de l'image ici

SistemesEz.com

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.

Powered by:

X