如何使用apt-get安装软件包的最新版本?


14

使用apt-get 安装软件包的特定版本很容易:

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

例如:

apt-get install jenkins=1.517

但是,是否有安装最新版本的快捷方式?

例如,假设编写脚本来自动执行Jenkins安装。添加http:/q/pkg.jenkins-ci.org/debian到后/etc/apt/sources.list,可以从两个来源获得Jenkins 。现在,我想告诉apt-get安装最新版本,而又不知道执行脚本时的最新版本

有可能以任何简单的方式吗?


apt-get默认情况下,获取最新版本。运行apt-get update之前,请务必
安瓦尔

Answers:


14

只需输入

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

并且将安装您所有存储库中可用的最新版本。


3
不要忘记apt-get update之前apt-get install ...从仓库更新软件包列表。
埃里克·卡瓦略

谢谢,有点明显... :)之前,我曾无意中安装了旧版本,但这也许是由于忘记apt-get update先安装而造成的。
Jonik 2013年

6

在大多数情况下,所选答案有效。但是,您可能会遇到一种情况,即backport存储库中有较新版本apt-get install <package-name>,默认情况下不会安装。例如,我最近遇到了这个问题:

$ 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

通过指定从backports安装,可以从backports中选择一个版本apt-get -t xenial-backports install golang

参考:https : //help.ubuntu.com/community/UbuntuBackports#Installing_Backports


2

对于落在这里的其他人:ttoine的答案是正确的。

但是,如果您对apt-get -q -y --force-yes install openjdk-6-jdk=<blah>语法一无所知(例如通过Chef),则可以指定星号/星号以获取最新信息:apt-get -q -y --force-yes install openjdk-6-jdk=\*


1

请注意,要获取软件包的实际最新版本,可能需要向apt添加一个存储库,该存储库可容纳该软件包的最新版本(即,最新的真实版本)。例如,openvpn文档说明:

“ OpenVPN项目的apt存储库中提供了最新的OpenVPN版本。这使您可以使用比发行版本存储库中可用版本更多的OpenVPN最新版本。”

当然,您需要确保信任添加的任何存储库。有多种添加存储库的方法。我喜欢他们在上面链接的OpenVPN文档中建议的方式。还有add-apt-repository

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.