Как установить пакет из тестирования?

Я нахожусь на сервере 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, вы можете:

  1. Установите инструменты сборки и зависимости:

    sudo apt-get install build-essential devscripts
    sudo apt-get build-dep vagrant
    
  2. Загрузите исходный код пакета и распакуйте его:

    dget -u https://launchpad.net/ubuntu/+archive/primary/+files/vagrant_1.8.1+dfsg-2.dsc
    cd vagrant-1.8.1
    
  3. Добавьте запись в журнал изменений с тщательно созданным суффиксом локальной версии (замените 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 (или новее) становится доступным в настроенных репозиториях.

  4. Создайте бинарный пакет:

    debuild -b -j"`getconf _NPROCESSORS_ONLN`"
    
  5. Установите встроенный пакет (ы) с sudo dpkg -i <DEBFILE>...,

PS: я не пытался собрать пакет сам, чтобы вы могли столкнуться с проблемой. Например, исходный пакет для Yakkety может зависеть от пакета (версии), которого нет в Xenial (на данный момент он менее вероятен и так как это та же самая исходная версия). В этом случае мы можем искать способы обойти это.

Другие вопросы по тегам