Jak zainstalować najnowszą wersję pakietu za pomocą apt-get?

14

Łatwo jest zainstalować konkretną wersję pakietu za pomocą apt-get:

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

Na przykład:

apt-get install jenkins=1.517

Ale czy istnieje skrót do instalowania najnowszej wersji?

Na przykład powiedzmy, pisząc skrypt, aby zautomatyzować instalację Jenkinsa. Po dodaniu http:/q/pkg.jenkins-ci.org/debiando /etc/apt/sources.listJenkins jest dostępna z dwóch źródeł. Teraz chciałbym powiedzieć apt-get, aby zainstalował najnowszą wersję, nie wiedząc dokładnie, jaka jest najnowsza wersja w momencie wykonywania skryptu.

Czy jest to możliwe w jakikolwiek prosty sposób?

Jonik
źródło
apt-getdomyślnie pobierz najnowszą wersję. biegnij apt-get updateprzed, aby się upewnić
Anwar

Odpowiedzi:

14

po prostu wpisz

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

A najnowsze dostępne we wszystkich twoich repozytoriach zostaną zainstalowane.

ttoine
źródło
3
Nie zapomnij apt-get updatewcześniej apt-get install ...zaktualizować list pakietów z repozytoriów.
Eric Carvalho,
Dzięki, trochę oczywiste ... :) Wcześniej natrafiłem na przypadkowe zainstalowanie starszej wersji, ale być może było to spowodowane tym, że apt-get updatenajpierw zapomniałem zrobić .
Jonik
6

Wybrana odpowiedź działa w większości przypadków. Może się jednak zdarzyć, że w repozytorium backportu dostępna będzie nowsza wersja, która apt-get install <package-name>domyślnie nie zostanie zainstalowana . Na przykład ostatnio natknąłem się na:

$ 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

Wybieranie wersji od backports może odbywać się poprzez podanie do zainstalowania z backports: apt-get -t xenial-backports install golang.

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

jotrocken
źródło
2

Dla każdego, kto tu trafi: odpowiedź Ttoine jest poprawna.

ALE jeśli utkniesz w apt-get -q -y --force-yes install openjdk-6-jdk=<blah>składni (powiedzmy przez szefa kuchni), możesz określić gwiazdkę / gwiazdkę, aby uzyskać najnowszą:apt-get -q -y --force-yes install openjdk-6-jdk=\*

Isa Farnik
źródło
1

Zauważ, że aby uzyskać aktualną najnowszą wersję pakietu, może być konieczne dodanie repozytorium do apt, repozytorium, które zawiera bardziej aktualną (tj. Prawdziwą najnowszą) wersję pakietu. Np. Dokumentacja openvpn wyjaśnia:

„Najnowsze wersje OpenVPN są dostępne w apt repozytoriach projektu OpenVPN. Dzięki temu możesz używać bardziej aktualnej wersji OpenVPN niż ta, która jest zwykle dostępna w repozytoriach twojej dystrybucji”.

Oczywiście chcesz mieć pewność, że ufasz dodanemu repozytorium. Istnieją różne sposoby dodawania repozytorium. Podoba mi się sposób, w jaki sugerują powyższe dokumenty OpenVPN. Istnieje również repozytorium add-apt .

Hawkeye Parker
źródło