web-dev-qa-db-fra.com

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 existe déjà un instantané emacs dans les référentiels d'Ubuntu.

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

27
elviejo79

Vous pouvez spécifier un référentiel avec l'option -t. A titre d'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 un même paquet iceweasel dans le référentiel officiel Debian. Si je veux installer Iceweasel à partir de ce dépôt spécifique, je lance:

apt-get install -t squeeze-backports iceweasel

depuis la page de manuel d'apt-get:

-t, --target-release, --default-release
           This option controls the default input to the policy engine, it creates a default pin at priority 990 using the specified
           release string. This overrides the general settings in /etc/apt/preferences. Specifically pinned packages are not affected by
           the value of this option. In short, this option lets you have simple control over which distribution packages will be retrieved
           from. Some common examples might be -t '2.1*', -t unstable or -t sid. Configuration Item: APT::Default-Release; see also the
           apt_preferences(5) manual page.

Je pense que c'est une meilleure solution,

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

19
hukko

J'ai trouvé une solution de contournement. Il me fallait d’abord trouver les référentiels contenant le pacakage:

$ 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 qui proviennent de différents référentiels:

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

Alors maintenant, nous disons simplement à apt ou aptitude d'installer cette version spécifique:

$ Sudo aptitude install emacs-snapshot=1:20100111-1~lenny1

nom du paquet = nom_version

La victoire.

Je ne sais toujours pas comment utiliser un référentiel spécifique. Mais dans ce cas, une version spécifique suffisait.

12
elviejo79

Il y a un fichier de préférences pour apt. Je pense qu'il se trouve sous/etc/apt, mais pas à 100%. Vous pouvez y définir une priorité plus élevée pour un paquet d'un référentiel que pour le même paquet depuis le référentiel Ubunto. Pour connaître la syntaxe exacte, recherchez man apt-get dans man. Editez le fichier, puis installez-le comme d'habitude avec apt-get, il récupérera la plus haute priorité, Origin. Assurez-vous simplement au préalable que le paquet de ce référentiel est compilé pour votre distribution (par exemple, un binaire debian peut chercher des dépendances aux mauvais endroits) et pour la version de votre noyau (cela change assez souvent tout au long du cycle de vie d’une version Ubuntu). Sinon, c'est une question de chance si cela fonctionnera.

1
rumtscho