Мне потребовалось два отдельных многочасовых занятия, чтобы полностью понять, как именно preferences.d
система работает в кв.
На моей локальной машине разработчика у меня есть много из разных подходящих источников ..:
/etc/apt/sources.list.d
; ls
total 64
-rw-r--r-- 1 root root 55 Jan 23 14:08 deb-backports.list
-rw-r--r-- 1 root root 158 Mar 4 06:05 deb-experimental.list
-rw-r--r-- 1 root root 164 Jan 23 14:23 deb-security.list
-rw-r--r-- 1 root root 146 Mar 4 06:05 deb-stable.list
-rw-r--r-- 1 root root 148 Mar 4 06:05 deb-testing.list
-rw-r--r-- 1 root root 150 Mar 4 06:05 deb-unstable.list
-rw-r--r-- 1 root root 42 Nov 30 22:35 dotdeb.list
-rw-r--r-- 1 root root 54 Nov 30 22:35 dotdeb.nginx-http2.list
-rw-r--r-- 1 root root 189 Oct 2 00:59 google-chrome.list
-rw-r--r-- 1 root root 49 Feb 6 18:51 suryorg-nginx.list <-- here
-rw-r--r-- 1 root root 47 Feb 6 18:53 suryorg-php.list <-- here
Чтобы сэкономить немного времени на вводе текста, у меня все те же настройки в /etc/apt/preferences.d
так как этот другой вопрос ServerFault относительно подходящего закрепления ... (хотя это в основном не имеет значения) .. а также одно дополнительное настраиваемое правило закрепления для packages.sury.org
, который предоставляет два отдельных репозитория для nginx и php. (это не имеет значения ...)
Это приводит к этому apt-cache policy
:
Package files:
100 /var/lib/dpkg/status
release a=now
950 https://packages.sury.org/php/ jessie/main amd64 Packages
release n=jessie,c=main
origin packages.sury.org
950 https://packages.sury.org/nginx/ jessie/main amd64 Packages
release n=jessie,c=main
origin packages.sury.org
900 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages
release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
origin dl.google.com
500 http://packages.dotdeb.org/ jessie-nginx-http2/all amd64 Packages
release o=packages.dotdeb.org,a=jessie-nginx-http2,n=jessie-nginx-http2,l=packages.dotdeb.org,c=all
origin packages.dotdeb.org
500 http://packages.dotdeb.org/ jessie/all amd64 Packages
release o=packages.dotdeb.org,a=jessie,n=jessie,l=packages.dotdeb.org,c=all
origin packages.dotdeb.org
500 http://ftp.us.debian.org/debian/ unstable/non-free Translation-en
500 http://ftp.us.debian.org/debian/ unstable/main Translation-en
500 http://ftp.us.debian.org/debian/ unstable/contrib Translation-en
50 http://ftp.us.debian.org/debian/ unstable/non-free amd64 Packages
release o=Debian,a=unstable,n=sid,l=Debian,c=non-free
origin ftp.us.debian.org
... { snipped }
Я был очень смущен тем, как закрепить собственные / сторонние репозитории apt, такие как dotdeb и sury.org, пока не понял, как использовать a=
, n=
, v=
, c=
, o=
, а также варианты "origin" и "release" для строки Pin: my sury.org, как описано в страница руководства apt_preferences. Например, сделать пин для нескольких репозиториев dotdeb просто:
Package: *
Pin: release a=jessie
Pin-Priority: 500
Package: *
Pin: release a=jessie-nginx-http2
Pin-Priority: -1
... со строчкой "архив" (a=
bit) легко доступен через apt-cache policy
. (Примечание: я не понимаю, если фактически выполнение этого конкретного примера выше будет иметь смысл во многих ситуациях, просто надуманный пример).
Затем мы попадаем на sury.org:
950 https://packages.sury.org/php/ jessie/main amd64 Packages
release n=jessie,c=main
origin packages.sury.org
950 https://packages.sury.org/nginx/ jessie/main amd64 Packages
release n=jessie,c=main
origin packages.sury.org
Как видите, здесь указано только кодовое имя (n=jessie
) и нет уникального имени архива, компонента или метки.
Я пытался использовать origin
метод, e.x.
Package: *
Pin: origin packages.sury.org
Pin-Priority: 950
И вы можете видеть выше в apt-cache policy
вывод, это делает работай. Однако нет никакого способа сузить круг вопросов до отдельных лиц. /nginx/
или /php/
части каталога репозитория, насколько я могу судить. Поместив часть каталога / пути в "Pin:
"строка перестает соответствовать правилу. То есть ...
...
Pin: origin packages.sury.org/nginx/
Не работает должным образом. Есть ли обходной путь для этого? Или это просто недостаток сопровождающего sury.org (что не в обиду для них, они отлично справляются ... это всего лишь крайний случай, и мне также честно любопытно)
Спасибо вам большое за ваше время.