Присвоїти більш високий пріоритет АРП


13

Я намагаюся розібратися, як призначити більш високий пріоритет одному ППА над іншим. Я переглянув купу відповідей на цьому форумі, але жодна з них не вирішує мою проблему.

На деяких наших серверах є два джерела PPA, які ми вставляємо в окремі файли /etc/apt/sources.list.d. Деякі з цих репостів містять однакові пакети (у переліку назв), але різні версії та, можливо, різні бінарні файли. Чи є спосіб, як ми можемо ПІДГОТОВИТИ один репо за іншим?

Я прочитав підручник з apt_preferences, але він не міг бути більш незрозумілим і не знайшов відповідей на моє запитання. Ось така ситуація. У нас є такі джерела:

$ 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

де nginx-source.listвміст:

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

а ruby-ng-experimental-source.listвміст:

deb     http://ppa.launchpad.net/brightbox/ruby-ng-experimental/ubuntu precise main

Обидва ці джерела надають повний пакет nginx різних версій і т.д.

$ 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

Як я надати пріоритет репо, вказаному в nginx-source.list, над тим, який зараз знаходиться в списку? Я спробував щось подібне:

$ 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

Але це змінило пріоритети обох джерел на однакову кількість - чи щось подібне? Таким чином, це НЕ змінило пріоритетів, і nginx-full все ще встановлюється з яскравого поля 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

Хтось має ідею, як досягти того, що я намагаюся зробити?

Відповіді:


15

Ось приклад /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

Можливо, вам доведеться запуститись apt-get updateпісля створення файлу.


/ etc / apt / preferences не існує 13.04, хоча /etc/apt/preferences.d/ існує, але це порожній каталог.
Ще один користувач

1
Файлу немає на складі, ви просто створюєте його
GM-Script-Writer-62850

3

Коротка відповідь: встановіть пріоритет фіксації менше 0 та встановіть o = LP-PPA- *, наприклад

Package: nginx-full
Pin: release o=LP-PPA-brightbox-ruby-ng-experimental
Pin-Priority: -10

Цитата з apt_preferences-manpage:

How APT Interprets Priorities
...
P < 0
prevents the version from being installed

Додаткова інформація: http://manpages.ubuntu.com/manpages/raring/en/man5/apt_preferences.5.html та https://help.ubuntu.com/community/PinningHowto .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.