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

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

安装起来很容易具体的使用 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 生态系统的一部分。

您需要重新安装该软件包。

请参阅软件包仓库中的说明,但通常如果您重新安装该软件包,它将得到更新。

检查重新安装前后的版本以确保您的软件包已正确更新。

相关内容