Asignar mayor prioridad a PPA

13

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.listcontenido es:

deb     http://ppa.launchpad.net/nginx/stable/ubuntu precise main

y el ruby-ng-experimental-source.listcontenido 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?

milosgajdos
fuente

Respuestas:

15

Aquí hay un ejemplo de /etc/apt/preferences

mint@mint ~ $ cat /etc/apt/preferences
Package: *
Pin: release o=linuxmint
Pin-Priority: 700

Package: *
Pin: origin packages.linuxmint.com
Pin-Priority: 700

Package: *
Pin: release o=Ubuntu
Pin-Priority: 500

Probablemente deba ejecutar apt-get updatedespués de crear el archivo.

GM-Script-Writer-62850
fuente
/ etc / apt / preferencias no existe en 13.04, aunque /etc/apt/preferences.d/ existe, pero es un directorio vacío.
Otro usuario más
1
El archivo no está en stock, solo debe crearlo
GM-Script-Writer-62850