Присвоить более высокий приоритет PPA

13

Я пытаюсь выяснить, как назначить более высокий приоритет одному PPA по сравнению с другим PPA. Я посмотрел кучу ответов на этом форуме, но ни один из них не решил мою проблему.

У нас есть два источника 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-full разных версий и т. Д. Когда я перечисляю приоритеты, ruby-ng-экспериментальный-source.list находится над выводом, следовательно, из этого репозитория устанавливается nginx-full:

$ 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 все еще устанавливается из 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

У кого-нибудь есть идеи, как добиться того, что я пытаюсь сделать?

milosgajdos
источник

Ответы:

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после создания файла.

GM-сценарист-62850
источник
/ etc / apt / предпочтения не существует 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 .

Clausi
источник