Как добавить репозиторий, но только для определенного пакета / версии и ее зависимостей?
Я хотел бы использовать репозиторий Natty Narwhal для пакетов марионеток, но я не хочу обновлять весь свой сервер. Это возможно?
Мое текущее решение состоит в том, чтобы получить пакеты.deb вручную
1 ответ
Пиннинг - это продвинутый метод управления пакетами, который позволяет вам оставаться в стабильном выпуске при получении пакетов из более поздней версии. Смешивание репозиториев не поддерживается и может привести к неприятностям, если требуемый пакет был скомпилирован для версий библиотек, отличных от тех, которые установлены в вашей системе. Если возможно, вы должны сначала попытаться получить пакет из репозитория backports (или, возможно, хорошо поддерживаемого PPA). Тем не менее, вы, кажется, уже знаете, что puppet
от Natty хорошо работает на вашей системе.
Для того, чтобы закрепить puppet
до хорошей версии, нам придется редактировать несколько файлов. Сначала вам нужно будет установить релиз по умолчанию в /etc/apt/apt.conf.d/01ubuntu
(Я предполагаю, что вы используете lucid, очевидно, замените реальный выпуск):
APT
{
Default-Release "lucid";
};
Далее вам нужно добавить natty к вашему /etc/apt/sources.list
или создайте новый файл /etc/apt/sources.list.d/natty.sources.list
со следующими источниками:
deb http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu natty-security main restricted universe multiverse
Затем вам нужно установить "Pin-Priority" для puppet
пакет от Natty выше приоритета для вашего выпуска по умолчанию. Установка выпуска по умолчанию в /etc/apt/apt.conf.d/01ubuntu
по существу устанавливает приоритет для всех пакетов, происходящих из этого выпуска, на 990. Так что в /etc/apt/preferences
нам нужно переоценить это для puppet
используя что-то более высокое, например:
Package: puppet
Pin: release n=natty
Pin-Priority: 995
Теперь вам просто нужно бежать и apt-get update && apt-get upgrade