Estou no servidor Ubuntu 16.04 LTS e preciso de uma correção parahttps://launchpad.net/ubuntu/+source/vagrantna versão 1.8.1+dfsg-2
lançada para Yakkety, mas não para Xenial.
Então, como instalar isso 1.8.1+dfsg-2
no Xenial para que ele seja substituído pelo pacote oficial assim que for lançado?
ATUALIZAÇÃO: Observe que não quero pin
o pacote. Quero que ele seja atualizado para o estável subsequente assim que esse estável for lançado.
Responder1
Se você deseja apenas o pacote mais recente desta vez e também deseja que ele seja substituído assim que a versão correta for lançada para sua versão atual do Ubuntu, você pode:
Instale as ferramentas de construção e dependências:
sudo apt-get install build-essential devscripts sudo apt-get build-dep vagrant
Baixe o código-fonte do pacote e extraia-o:
dget -u https://launchpad.net/ubuntu/+archive/primary/+files/vagrant_1.8.1+dfsg-2.dsc cd vagrant-1.8.1
Adicione uma entrada de changelog com um sufixo de versão local cuidadosamente elaborado (substitua
anatoly
e a mensagem de log pelo que você quiser):debchange --local=~anatoly 'Backport to Xenial'
Isso aumentará a versão do pacote para
1.8.1+dfsg-2~anatoly1
. O sufixo til tem a propriedade de ser considerado uma versão inferior a1.8.1+dfsg-2
:$ dpkg --compare-versions 1.8.1+dfsg-2~anatoly1 '<' 1.8.1+dfsg-2; echo $? 0
Isso significa que o gerenciador de pacotes irá sugerir “atualizar” o pacote local assim que a versão
1.8.1+dfsg-2
(ou mais recente) estiver disponível nos repositórios configurados.Construa o pacote binário:
debuild -b -j"`getconf _NPROCESSORS_ONLN`"
Instale o(s) pacote(s) compilado(s) com
sudo dpkg -i <DEBFILE>...
.
PS: Eu não tentei construir o pacote sozinho, então você pode ter problemas. Por exemplo, o pacote fonte do Yakkety pode depender de um pacote (versão) que não está no Xenial (menos provável neste momento e já que é a mesma versão upstream). Nesse caso, podemos procurar maneiras de contornar isso.