Estoy tratando de descubrir cómo asignar mayor prioridad a un PPA sobre otro PPA. Eché un vistazo a muchas de las respuestas en este foro, pero ninguna de ellas resuelve mi problema.
Tenemos dos fuentes de PPA en algunos de nuestros servidores en los que los guardamos en archivos separados /etc/apt/sources.list.d
. Algunos de estos repositorios proporcionan los mismos paquetes (en términos de nombres) pero diferentes versiones y posiblemente diferentes binarios. ¿Hay alguna forma de PRIORIZAR un repositorio sobre otro?
Leí el tutorial de apt_preferences pero no podía ser más oscuro y no encontré las respuestas a mi pregunta. Aquí está la situación. Tenemos las siguientes fuentes:
$ ls -l /etc/apt/sources.list.d
total 12
-rw-r--r-- 1 root root 66 Jan 2 16:50 nginx-source.list
-rw-r--r-- 1 root root 84 Jan 2 16:49 ruby-ng-experimental-source.list
donde el nginx-source.list
contenido es:
deb http://ppa.launchpad.net/nginx/stable/ubuntu precise main
y el ruby-ng-experimental-source.list
contenido es:
deb http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu precise main
Ambas fuentes proporcionan el paquete nginx-full de diferentes versiones, etc. Cuando enumero las prioridades, ruby-ng-experimental-source.list está en la parte superior de la salida, por lo tanto, nginx-full se instala desde ese repositorio:
$ apt-cache policy nginx-full
nginx-full:
Installed: 1:1.2.3-1~38~precise1
Candidate: 1:1.2.6-1~43~precise1
Version table:
1:1.2.6-1~43~precise1 0
500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
*** 1:1.2.3-1~38~precise1 0
100 /var/lib/dpkg/status
1.4.1-1ppa0~precise 0
500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
1.1.19-1ubuntu0.1 0
500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
1.1.19-1 0
500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages
¿Cómo priorizo el repositorio enumerado en nginx-source.list sobre el que está en la parte superior de la lista ahora? Intenté algo como esto:
$ cat /etc/apt/preferences
Package: nginx-full
Pin: origin http://ppa.launchpad.net/nginx/stable/ubuntu
Pin-Priority: 1000
Package: nginx-full
Pin: origin http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu
Pin-Priority: 100
Pero eso ha cambiado las prioridades de ambas fuentes al mismo número, ¿o algo así? Así que esto NO ha cambiado las prioridades y todavía se está instalando nginx-full desde el Brightbox PPA
$ apt-cache policy nginx-full
nginx-full:
Installed: 1:1.2.3-1~38~precise1
Candidate: 1:1.2.6-1~43~precise1
Package pin: (not found)
Version table:
1:1.2.6-1~43~precise1 1000
500 http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu/ precise/main amd64 Packages
*** 1:1.2.3-1~38~precise1 1000
100 /var/lib/dpkg/status
1.4.1-1ppa0~precise 1000
500 http://ppa.launchpad.net/nginx/stable/ubuntu/ precise/main amd64 Packages
1.1.19-1ubuntu0.1 1000
500 http://mirror.rackspace.co.uk/ubuntu/ precise-updates/universe amd64 Packages
1.1.19-1 1000
500 http://mirror.rackspace.co.uk/ubuntu/ precise/universe amd64 Packages
¿Alguien tiene alguna idea de cómo lograr lo que estoy tratando de hacer?
fuente
Respuesta corta: establezca la prioridad de fijación a menos de 0 y establezca o = LP-PPA- *, p. Ej.
Cita de apt_preferences-manpage:
Más información: http://manpages.ubuntu.com/manpages/raring/en/man5/apt_preferences.5.html y https://help.ubuntu.com/community/PinningHowto .
fuente