![如何使用 apt-get 安装软件包的最新版本?](https://linux22.com/image/837003/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20apt-get%20%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%9A%84%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%EF%BC%9F.png)
安装起来很容易具体的使用 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 安装最新版本不知道最新版本到底是什么在执行脚本时。
有没有简单的方法可以实现这一点?
答案1
只需输入
apt-get update
apt-get install <package-name>
并且将安装所有存储库中最新的可用版本。
答案2
所选答案在大多数情况下都有效。但是,您可能会发现在反向移植存储库中有一个较新的版本,默认情况下不会安装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
答案3
对于到达这里的任何其他人来说:ttoine 的答案是正确的。
但是如果你坚持使用apt-get -q -y --force-yes install openjdk-6-jdk=<blah>
语法(比如通过 Chef),你可以指定星号/星号来获取最新信息:apt-get -q -y --force-yes install openjdk-6-jdk=\*
答案4
这适用于使用以下方式安装的软件包apt-get
:
apt-get update <package-name>
但是,如果您从以发布为基础发布其内容的 GitHub 存储库安装应用程序,则更新apt-get
将不起作用,因为它不是 Ubuntu/Debian 生态系统的一部分。
您需要重新安装该软件包。
请参阅软件包仓库中的说明,但通常如果您重新安装该软件包,它将得到更新。
检查重新安装前后的版本以确保您的软件包已正确更新。