Wie installiere ich die neueste Version eines Pakets mit apt-get?

14

Mit apt-get ist es einfach, eine bestimmte Version eines Pakets zu installieren :

apt-get install <package name>=<version>

Beispielsweise:

apt-get install jenkins=1.517

Aber gibt es eine Verknüpfung für die Installation der neuesten Version?

Schreiben Sie beispielsweise ein Skript, um die Jenkins-Installation zu automatisieren. Nach dem Hinzufügen http:/q/pkg.jenkins-ci.org/debianzu /etc/apt/sources.listist Jenkins aus zwei Quellen erhältlich. Jetzt möchte ich apt-get anweisen, die neueste Version zu installieren, ohne genau zu wissen, welche Version zum Zeitpunkt der Skriptausführung aktuell ist.

Ist das auf irgendeine einfache Weise möglich?

Jonik
quelle
apt-getStandardmäßig erhalten Sie die neueste Version. Laufen Sie apt-get updatevorher, um sicher zu sein
Anwar

Antworten:

14

Tipp einfach

apt-get update    
apt-get install <package-name>

Und die neueste Version, die in all Ihren Repositorys verfügbar ist, wird installiert.

ttoine
quelle
3
Vergessen Sie nicht, apt-get updatevorher apt-get install ...die Paketlisten aus den Repositories zu aktualisieren.
Eric Carvalho
Danke, irgendwie offensichtlich ... :) Früher bin ich auf eine versehentlich installierte ältere Version gestoßen, aber vielleicht lag das daran, dass ich vergessen hatte, dies apt-get updatezuerst zu tun .
Jonik
6

Die ausgewählte Antwort funktioniert in den meisten Fällen. Möglicherweise befinden Sie sich jedoch in einer Situation, in der eine neuere Version in einem Backport-Repository verfügbar ist, das nicht apt-get install <package-name>standardmäßig installiert wird . Zum Beispiel bin ich kürzlich auf Folgendes gestoßen:

$ apt-cache policy golang
golang:
  Installed: 2:1.3.3-1
  Candidate: 2:1.3.3-1
  Version table:
     2:1.7~5~bpo8+1 0
        100 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages
     2:1.5.1-4~bpo8+1 0
        100 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages
 *** 2:1.3.3-1 0
        500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

Auswählen eine Version aus dem updates kann durch Angabe gemacht wird von updates zu installieren: apt-get -t xenial-backports install golang.

Referenz: https://help.ubuntu.com/community/UbuntuBackports#Installing_Backports

jotrocken
quelle
2

Für alle anderen, die hier landen: Die Antwort von ttoine ist richtig.

ABER wenn Sie mit der apt-get -q -y --force-yes install openjdk-6-jdk=<blah>Syntax nicht weiterkommen (sagen wir über Chef), können Sie ein Sternchen / Sternchen angeben, um die neuesten Informationen zu erhalten:apt-get -q -y --force-yes install openjdk-6-jdk=\*

Isa Farnik
quelle
1

Beachten Sie, dass Sie möglicherweise ein Repository zu apt hinzufügen müssen, um die aktuellste Version eines Pakets zu erhalten. Dieses Repository enthält eine aktuellere (dh die aktuellste) Version des Pakets. In der openvpn-Dokumentation wird beispielsweise Folgendes erklärt:

"Die neuesten OpenVPN-Versionen sind in den apt-Repositorys des OpenVPN-Projekts verfügbar. Auf diese Weise können Sie eine aktuellere Version von OpenVPN verwenden, als normalerweise in den Repositorys Ihrer Distribution verfügbar ist."

Natürlich möchten Sie sicherstellen, dass Sie jedem von Ihnen hinzugefügten Repository vertrauen. Es gibt verschiedene Möglichkeiten, ein Repository hinzuzufügen. Mir gefällt die Art und Weise, wie sie in den oben verlinkten OpenVPN-Dokumenten vorgeschlagen wird. Es gibt auch ein Add-Apt-Repository .

Hawkeye Parker
quelle