У нас есть собственный репозиторий apt / deb с несколькими пакетами, версию которых мы хотим контролировать. Что особенно важно, это включает марионетку, которая может быть чувствительна к разным версиям.
Я хочу, чтобы наши рабочие столы получали марионетку только из нашего репозитория, но также чтобы люди могли добавлять свои собственные PPA, включать резервные копии и т. Д. Текущая проблема, с которой мы сталкиваемся, - это резервные копии на Ubuntu Lucid. Некоторые важные строки из /etc/apt/sources.list
:
deb http://gb.archive.ubuntu.com/ubuntu/ lucid main restricted universe multiverse
deb http://gb.archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://gb.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://deb.example.org/apt/ubuntu/lucid/ binary/
И в /etc/apt/preferences.d/puppet
:
Package: puppet puppet-common
Pin: release a=binary
Pin-Priority: 800
Package: puppet puppet-common
Pin: release a=lucid-backports
Pin-Priority: -10
В настоящее время политика гласит:
$ sudo apt-cache policy puppet
puppet:
Installed: (none)
Candidate: (none)
Package pin: 2.7.1-1ubuntu3.6~lucid1
Version table:
2.7.1-1ubuntu3.6~lucid1 -10
500 http://gb.archive.ubuntu.com/ubuntu/ lucid-backports/main Packages
100 /var/lib/dpkg/status
2.6.14-1puppetlabs1 -10
500 http://deb.example.org/apt/ubuntu/lucid/ binary/ Packages
0.25.4-2ubuntu6.8 -10
500 http://gb.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
0.25.4-2ubuntu6 -10
500 http://gb.archive.ubuntu.com/ubuntu/ lucid/main Packages
Если я использую n=
вместо того a=
тогда я получаю Package pin: (not found)
Я просто не понимаю, что мне следует использовать. Любая помощь приветствуется.
Я потратил больше времени на чтение страница руководства apt / preferences и нашел origin
ключевое слово. Итак, я пробовал:
Explanation: get puppet from our server
Explanation: priority over 1000 means downgrade if necessary
Package: puppet puppet-common
Pin: origin "deb.example.org"
Pin-Priority: 1001
Я удалил линию бэкпортов. На странице руководства сказано, что приоритет выше 1000 приведет к понижению версии. Но пока ничего не установлено. Я все еще получаю Package pin: (not found)
и Candidate: (not found)
при этом вы все еще получаете полную таблицу версий выше. Я не понимаю, почему мое происхождение не меняет приоритет deb.example.org.
Этот ответ, очевидно, будет зависеть от того, как вы упаковываете и распространяете пакеты, такие как марионетка, в вашем собственном частном репо, но альтернативный вариант, который следует рассмотреть, - это создать версии для конкретной компании с префиксом имени, чтобы избежать конфликтов с «основными» репозиториями, такими как backports .
Поэтому вместо марионетки используйте abc-puppet, где abc - это сокращение для вашей компании.