检查版本的命令

检查版本的命令

我是这个平台的新手,所以有人可以帮我解释一些命令吗?

我需要一些命令来为特定的软件包修补服务器。

升级软件包后,如何确定软件包是否更新到最新版本?

答案1

有很多不同的解决方案/解决方法,我将提到一些:

1. 查找已安装的版本

1.1. dpkg

用于dpkg -l pkg-name获取软件包版本,例如:

$ dpkg -l firefox

它会给你一些信息:

||/ Name         Version                  Architecture    Description
+++-==========================================================================
ii  firefox      53.0.3+build1-0ubuntu0.  amd64           Safe and easy web brow

1.2. pkg --version

取决于您的软件包开关,例如-v--version可能对您可用:

firefox -v

2. 最新可用版本

2.1. apt 显示

然后使用sudo apt update以确保您的源是最新的,并使用apt show firefox | grep -i version查看最新可用的版本。

2.2. Ubuntu 软件包数据库

您还可以查看https://packages.ubuntu.com搜索您的软件包版本。

2.3. apt 更新日志

另外,您可以使用apt changelog pkg-name,例如,apt changelog firefox这将连接到互联网以获取最后的“更改日志”数据,因此您不必更新使用此命令的源。

2.4. 麦迪逊

另一个选项是rmadison,它远程查询有关包的存档数据库,因此您不必在此选项中更新源。

首先安装其包:sudo apt install devscripts,然后像这样使用它:

 rmadison -s zesty -a amd64  wget

wget它为您提供了适用于“zesty”和“amd64”架构的最新版本。

答案2

检查特定软件包是否有可用升级

可以apt-cache这样使用,

$ apt-cache policy <package-name>  # generic

$ apt-cache policy firefox         # example with output
firefox:
  Installed: 53.0.3+build1-0ubuntu0.16.04.2
  Candidate: 53.0.3+build1-0ubuntu0.16.04.2
  Version table:
 *** 53.0.3+build1-0ubuntu0.16.04.2 500
        500 http://se.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages
        100 /var/lib/dpkg/status
     45.0.2+build1-0ubuntu1 500
        500 http://se.archive.ubuntu.com/ubuntu xenial/main i386 Packages

更新源列表

更新列出来源

sudo apt-get update

或(较新的语法)

sudo apt update

升级包

升级特定软件包(以及支持新版本所需的一切)

sudo apt-get install <package-name>

或(较新的语法)

sudp apt install <package-name>

升级所有已安装的软件包

升级已安装的软件包(有可用升级)

sudo apt-get dist-upgrade

或(较新的语法)

sudo apt upgrade

或者

sudo apt full-upgrade

手册页

参见手册页

man apt-get

man apt

更多细节。

答案3

如果您希望只为特定软件包修补服务器,您可以这样做sudo apt-get install --only-upgrade <packagename>。这将升级仅此一个包,并且仅有的是否已安装。然后您可以使用<packagename> --version来验证已安装包的当前版本。您也可以使用dpkg -l | awk '$2=="<packagename>" { print $3 }'来验证版本。

相关内容