Как установить пакет из тестирования?
Я нахожусь на сервере 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 (на данный момент он менее вероятен и так как это та же самая исходная версия). В этом случае мы можем искать способы обойти это.