Wie installiere ich ein Paket aus dem Test?

Wie installiere ich ein Paket aus dem Test?

Ich bin auf Ubuntu 16.04 LTS Server und brauche einen Fix fürhttps://launchpad.net/ubuntu/+source/vagrantin einer 1.8.1+dfsg-2für Yakkety veröffentlichten Version, aber nicht für Xenial.

Wie installiert man das also 1.8.1+dfsg-2für Xenial, sodass es nach der Veröffentlichung durch das offizielle Paket ersetzt wird?

UPDATE: Beachten Sie, dass ich das Paket nicht möchte pin. Ich möchte, dass es auf die nächste stabile Version aktualisiert wird, sobald diese stabile Version veröffentlicht wird.

Antwort1

Wenn Sie das neuere Paket nur dieses eine Mal möchten und es auch ersetzen möchten, sobald die richtige Version für Ihre aktuelle Ubuntu-Version veröffentlicht wird, haben Sie folgende Möglichkeiten:

  1. Installieren Sie die Build-Tools und Abhängigkeiten:

    sudo apt-get install build-essential devscripts
    sudo apt-get build-dep vagrant
    
  2. Laden Sie die Paketquelle herunter und extrahieren Sie sie:

    dget -u https://launchpad.net/ubuntu/+archive/primary/+files/vagrant_1.8.1+dfsg-2.dsc
    cd vagrant-1.8.1
    
  3. Fügen Sie einen Änderungsprotokolleintrag mit einem sorgfältig erstellten lokalen Versionssuffix hinzu (ersetzen Sie anatolydie Protokollnachricht durch alles, was Sie möchten):

    debchange --local=~anatoly 'Backport to Xenial'
    

    Dadurch wird die Paketversion auf erhöht 1.8.1+dfsg-2~anatoly1. Das Tilde-Suffix hat die Eigenschaft, dass es tatsächlich als niedrigere Version als angesehen wird 1.8.1+dfsg-2:

    $ dpkg --compare-versions 1.8.1+dfsg-2~anatoly1 '<' 1.8.1+dfsg-2; echo $?
    0
    

    Das bedeutet, dass der Paketmanager vorschlägt, das lokale Paket zu „aktualisieren“, sobald die Version 1.8.1+dfsg-2(oder neuer) in den konfigurierten Repositorys verfügbar ist.

  4. Erstellen Sie das Binärpaket:

    debuild -b -j"`getconf _NPROCESSORS_ONLN`"
    
  5. Installieren Sie die erstellten Pakete mit sudo dpkg -i <DEBFILE>....

PS: Ich habe nicht versucht, das Paket selbst zu erstellen, daher kann es sein, dass Sie auf ein Problem stoßen. Beispielsweise kann das Quellpaket für Yakkety von einem Paket (einer Version) abhängen, das nicht in Xenial enthalten ist (was derzeit weniger wahrscheinlich ist, da es sich um dieselbe Upstream-Version handelt). In diesem Fall können wir nach Möglichkeiten suchen, dies zu umgehen.

verwandte Informationen