Как установить пакет из тестирования?
Я нахожусь на сервере Ubuntu 16.04 LTS и нуждаюсь в исправлении для https://launchpad.net/ubuntu/+source/vagrant в версии 1.8.1+dfsg-2 выпущен для Yakkety, но не для Xenial.
Так как это установить 1.8.1+dfsg-2 для Xenial, чтобы он был заменен официальным пакетом после его выпуска?
ОБНОВЛЕНИЕ: обратите внимание, что я не хочу pin посылка. Я хочу обновить его до следующей стабильной версии после выпуска этой стабильной версии.
1 ответ
Если вы просто хотите, чтобы новый пакет был разовым, и вы также хотите заменить его, как только будет выпущена правильная версия для вашего текущего выпуска Ubuntu, вы можете:
Установите инструменты сборки и зависимости:
sudo apt-get install build-essential devscripts sudo apt-get build-dep vagrantЗагрузите исходный код пакета и распакуйте его:
dget -u https://launchpad.net/ubuntu/+archive/primary/+files/vagrant_1.8.1+dfsg-2.dsc cd vagrant-1.8.1Добавьте запись в журнал изменений с тщательно созданным суффиксом локальной версии (замените
anatolyи сообщение журнала с тем, что вы хотите):debchange --local=~anatoly 'Backport to Xenial'Это повысит версию пакета до
1.8.1+dfsg-2~anatoly1, Суффикс тильды обладает тем свойством, что он фактически считается более низкой версией, чем1.8.1+dfsg-2:$ dpkg --compare-versions 1.8.1+dfsg-2~anatoly1 '<' 1.8.1+dfsg-2; echo $? 0Это означает, что менеджер пакетов предложит "обновить" локальный пакет после версии
1.8.1+dfsg-2(или новее) становится доступным в настроенных репозиториях.Создайте бинарный пакет:
debuild -b -j"`getconf _NPROCESSORS_ONLN`"Установите встроенный пакет (ы) с
sudo dpkg -i <DEBFILE>...,
PS: я не пытался собрать пакет сам, чтобы вы могли столкнуться с проблемой. Например, исходный пакет для Yakkety может зависеть от пакета (версии), которого нет в Xenial (на данный момент он менее вероятен и так как это та же самая исходная версия). В этом случае мы можем искать способы обойти это.