¿Cómo instalar la última versión de un paquete con apt-get?

14

Es fácil instalar una versión específica de un paquete con apt-get:

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

Por ejemplo:

apt-get install jenkins=1.517

¿Pero hay un atajo para instalar la última versión?

Por ejemplo, digamos que escribe un script para automatizar la instalación de Jenkins. Después de añadir http:/q/pkg.jenkins-ci.org/debiana /etc/apt/sources.list, Jenkins está disponible de dos fuentes. Ahora, me gustaría decirle a apt-get que instale la última versión sin saber exactamente cuál es la última versión en el momento en que se ejecuta el script.

¿Es esto posible de alguna manera simple?

Jonik
fuente
apt-getpor defecto obtiene la última versión. correr apt-get updateantes para estar seguro
Anwar

Respuestas:

14

Sólo tipo

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

Y se instalará lo último disponible en todos sus repositorios.

ttoine
fuente
3
No olvide apt-get updateantes apt-get install ...actualizar las listas de paquetes desde los repositorios.
Eric Carvalho
Gracias, algo obvio ... :) Anteriormente me he encontrado con una versión anterior instalada involuntariamente, pero tal vez eso fue causado por olvidar hacerlo apt-get updateprimero.
Jonik
6

La respuesta seleccionada funciona en la mayoría de los casos. Sin embargo, es posible que se encuentre en una situación en la que esté disponible una versión más reciente en un repositorio de backport que no se instalará apt-get install <package-name>de manera predeterminada. Por ejemplo, recientemente me encontré con esto:

$ 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

Selección de una versión de los backports se puede hacer mediante la especificación de la instalación desde backports: apt-get -t xenial-backports install golang.

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

jotrocken
fuente
2

Para cualquier otra persona que aterrice aquí: la respuesta de ttoine es correcta.

PERO si está atascado con la apt-get -q -y --force-yes install openjdk-6-jdk=<blah>sintaxis (digamos a través de Chef), puede especificar un asterisco / estrella para obtener lo último:apt-get -q -y --force-yes install openjdk-6-jdk=\*

Isa Farnik
fuente
1

Tenga en cuenta que para obtener una última versión real de un paquete, es posible que deba agregar un repositorio a apt, un repositorio que contenga una versión más actual (es decir, la última real) del paquete. Por ejemplo, la documentación de openvpn explica:

"Las últimas versiones de OpenVPN están disponibles en los repositorios aptos del proyecto OpenVPN. Esto le permite usar una versión más actualizada de OpenVPN que la que está típicamente disponible en los repositorios de su distribución".

Por supuesto, desea asegurarse de confiar en cualquier repositorio que agregue. Hay varias formas de agregar un repositorio. Me gusta la forma en que sugieren en los documentos de OpenVPN vinculados anteriormente. También hay add-apt-repository .

Hawkeye Parker
fuente