web-dev-qa-db-fra.com

Comment ajouter un référentiel, mais uniquement pour un package / une version spécifique et ses dépendances?

J'aimerais utiliser le référentiel Natty Narwhal pour les paquets de marionnettes, mais je ne souhaite pas mettre à niveau tout mon serveur. Est-ce possible ?

Ma solution actuelle consiste à récupérer les paquets .deb à la main

5
cslavoie

Pinning est une technique avancée de gestion de paquets qui vous permet de rester sur une version stable tout en récupérant des paquets d'une version plus récente. Le mélange de référentiels n'est pas pris en charge et peut vous poser problème si le paquet souhaité a été compilé avec des versions de bibliothèque différentes de celles de votre système. Si possible, essayez d’obtenir le package à partir du référentiel backports (ou éventuellement d’un PPA bien pris en charge). Cela dit, vous semblez déjà savoir que puppet de Natty fonctionne bien sur votre système.

Afin d'épingler puppet à la version natty, nous devrons éditer quelques fichiers. Vous devez d’abord définir votre version par défaut dans /etc/apt/apt.conf.d/01ubuntu (je suppose que vous utilisez lucid, remplacez évidemment la version actuelle):

APT
{
Default-Release "lucid";
};

Ensuite, vous devez ajouter natty à votre /etc/apt/sources.list ou créer un nouveau fichier /etc/apt/sources.list.d/natty.sources.list avec les sources suivantes:

deb http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse

Ensuite, vous devez définir la "priorité Pin" pour le package puppet de Natty supérieur à la priorité de votre version par défaut. Définir la version par défaut dans /etc/apt/apt.conf.d/01ubuntu définit essentiellement la priorité pour tous les paquets originaires de cette version à 990. Ainsi, dans /etc/apt/preferences, nous devons remplacer cela pour puppet, en utilisant quelque chose de plus élevé, comme:

Package: puppet
Pin: release n=natty
Pin-Priority: 995

Maintenant, vous devez simplement exécuter et apt-get update && apt-get upgrade

4
andrewsomething