查看: 1412|回复: 22

若何在安装之前检查 Linux 软件包的版本?

  [复制链接]

11

主题

19

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2020-1-16 12:57:45 | 显示全部楼层 |阅读模式


本文将先容在 Debian 及其衍生品(如 Ubuntu)中,若何在软件包安装之前检查它的版本。对于那些想在安装之前晓得软件包版本的人来说,这个小技能能够会有所帮助。

-- Sk(作者)

大大都人都晓得若何在 Linux 中 查找已安装软件包的版本 ,可是,你会若何查找那些还没有安装的软件包的版本呢?很简单!本文将先容在 Debian 及其衍生品(如 Ubuntu)中,若何在软件包安装之前检查它的版本。对于那些想在安装之前晓得软件包版本的人来说,这个小技能能够会有所帮助。
在安装之前检查 Linux 软件包版本

在基于 DEB 的系统中,即使软件包还没有安装,也有很多方式可以检察他的版本。接下来,我将逐一先容。
方式 1 – 利用 Apt

检查软件包的版本的懒人方式:
$ apt show

示例:
$ apt show vim

示例输出:
Package: vim
Version: 2:8.0.1453-1ubuntu1.1
Priority: optional
Section: editors
Origin: Ubuntu
Maintainer: Ubuntu Developers
Original-Maintainer: Debian Vim Maintainers
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,852 kB
Provides: editor
Depends: vim-common (= 2:8.0.1453-1ubuntu1.1), vim-runtime (= 2:8.0.1453-1ubuntu1.1), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.7), libpython3.6 (>= 3.6.5), libselinux1 (>= 1.32), libtinfo5 (>= 6)
Suggests: ctags, vim-doc, vim-scripts
Homepage: https://vim.sourceforge.io/
Task: cloud-image, server
Supported: 5y
Download-Size: 1,152 kB
APT-Sources: http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description: Vi IMproved - enhanced vi editor
Vim is an almost compatible version of the UNIX editor Vi.
.
Many new features have been added: multi level undo, syntax
highlighting, command line history, on-line help, filename
completion, block operations, folding, Unicode support, etc.
.
This package contains a version of vim compiled with a rather
standard set of features. This package does not provide a GUI
version of Vim. See the other vim-* packages if you need more
(or less).
N: There is 1 additional record. Please use the '-a' switch to see it

正如你在上面的输出中看到的,apt show 号令显现了软件包很多重要的细节,例如:
    包称号,版本,来历(vim 来自那里),保护者,包的主页,依靠,下载巨细,简介,其他。

是以,Ubuntu 仓库中可用的 Vim 版本是 8.0.1453。假如我把它安装到我的 Ubuntu 系统上,就会获得这个版本。

大概,假如你不想看那末多的内容,那末可以利用 apt policy 这个号令:
$ apt policy vim
vim:
Installed: (none)
Candidate: 2:8.0.1453-1ubuntu1.1
Version table:
2:8.0.1453-1ubuntu1.1 500
500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
2:8.0.1453-1ubuntu1 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

甚至更短:
$ apt list vim
Listing... Done
vim/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.1 amd64
N: There is 1 additional version. Please use the '-a' switch to see it

apt 是 Ubuntu 最新版本的默许包治理器。是以,这个号令足以找到一个软件包的具体信息,给定的软件包能否安装并不重要。这个号令将简单地列出给定包的版本以及其他具体信息。
方式 2 – 利用 Apt-get

要检察软件包的版本而不安装它,我们可以利用 apt-get 号令和 -s 选项。
$ apt-get -s install vim

示例输出:
NOTE: This is only a simulation!
apt-get needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
ctags vim-doc vim-scripts
The following NEW packages will be installed:
vim
0 upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Inst vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])

这里,-s 选项代表 模拟。正如你在输出中看到的,它不履行任何操纵。相反,它只是模拟履行,好让你晓得在安装 Vim 时会发生什么。

你可以将 install 选项替换为 upgrade,以检察升级包时会发生什么。
$ apt-get -s upgrade vim
方式 3 – 利用 Aptitude

在 Debian 及其衍生品中,aptitude 是一个基于 ncurses(LCTT 译注:ncurses 是终端基于文本的字符处置的库)和号令行的前端 APT 包治理器。

利用 aptitude 来检察软件包的版本,只需运转:
$ aptitude versions vim
p 2:8.0.1453-1ubuntu1 bionic 500
p 2:8.0.1453-1ubuntu1.1 bionic-security,bionic-updates 500

你还可以利用模拟选项(-s)来检察安装或升级包时会发生什么。
$ aptitude -V -s install vim
The following NEW packages will be installed:
vim [2:8.0.1453-1ubuntu1.1]
0 packages upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Need to get 1,152 kB of archives. After unpacking 2,852 kB will be used.
Would download/install/remove packages.

这里,-V 标志用于显现软件包的具体信息。
$ aptitude -V -s upgrade vim

类似的,只需将 install 替换为 upgrade 选项,即可检察升级包会发生什么。
$ aptitude search vim -F "%c %p %d %V"

这里,
    -F 用于指定应利用哪类格式来显现输出,%c – 包的状态(已安装或未安装),%p – 包的称号,%d – 包的简介,%V – 包的版本。

当你不晓得完整的软件包称号时,这很是有用。这个号令将列出包括给定字符串(即 vim)的一切软件包。

以下是上述号令的示例输出:
[...]
p vim Vi IMproved - enhanced vi editor 2:8.0.1453-1ub
p vim-tlib Some vim utility functions 1.23-1
p vim-ultisnips snippet solution for Vim 3.1-3
p vim-vimerl Erlang plugin for Vim 1.4.1+git20120
p vim-vimerl-syntax Erlang syntax for Vim 1.4.1+git20120
p vim-vimoutliner script for building an outline editor on top of Vim 0.3.4+pristine
p vim-voom Vim two-pane outliner 5.2-1
p vim-youcompleteme fast, as-you-type, fuzzy-search code completion engine for Vim 0+20161219+git
方式 4 – 利用 Apt-cache

apt-cache 号令用于查询基于 Debian 的系统中的 APT 缓存。对于要在 APT 的包缓存上履行很多操纵时,它很有用。一个很好的例子是我们可以从 某个仓库或 ppa 中列出已安装的利用法式 。

不可是已安装的利用法式,我们还可以找到软件包的版本,即使它没有被安装。例如,以下号令将找到 Vim 的版本:
$ apt-cache policy vim

示例输出:
vim:
Installed: (none)
Candidate: 2:8.0.1453-1ubuntu1.1
Version table:
2:8.0.1453-1ubuntu1.1 500
500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
2:8.0.1453-1ubuntu1 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

正如你在上面的输出中所看到的,Vim 并没有安装。假如你想安装它,你会晓得它的版本是 8.0.1453。它还显现 vim 包来自哪个仓库。
方式 5 – 利用 Apt-show-versions

在 Debian 和基于 Debian 的系统中,apt-show-versions 号令用于列出已安装和可用软件包的版本。它还显现一切可升级软件包的列表。假如你有一个夹杂的稳定或测试情况,这是很是方便的。例如,假如你同时启用了稳定和测试仓库,那末你可以轻松地从测试库找到利用法式列表,还可以升级测试库中的一切软件包。

默许情况下系统没有安装 apt-show-versions,你需要利用以下号令来安装它:
$ sudo apt-get install apt-show-versions

安装后,运转以下号令查找软件包的版本,例如 Vim:
$ apt-show-versions -a vim
vim:amd64 2:8.0.1453-1ubuntu1 bionic archive.ubuntu.com
vim:amd64 2:8.0.1453-1ubuntu1.1 bionic-security security.ubuntu.com
vim:amd64 2:8.0.1453-1ubuntu1.1 bionic-updates archive.ubuntu.com
vim:amd64 not installed

这里,-a 选项打印给定软件包的一切可用版本。

假如已经安装了给定的软件包,那末就不需要利用 -a 选项。在这类情况下,只需运转:
$ apt-show-versions vim

差不多完了。假如你还领会其他方式,鄙人面的批评平分享,我将检查并更新本指南。

via: https://www.ostechnix.com/how-to-check-linux-package-version-before-installing-it/

作者: sk 选题: lujun9972 译者: MjSeven 校订: wxy

本文由 LCTT 原创编译, Linux中国 声誉推出
点击“领会更多”可拜候文内链接

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

5

主题

11

帖子

37

积分

新手上路

Rank: 1

积分
37
发表于 2020-1-16 12:58:22 | 显示全部楼层
转发了
回复

使用道具 举报

6

主题

6712

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13430
发表于 2020-1-16 14:32:34 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

15

主题

6775

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13565
发表于 2020-1-16 14:38:16 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

4

主题

6744

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13492
发表于 2020-1-16 15:48:39 来自手机 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

8

主题

6700

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13408
发表于 2020-1-16 15:56:50 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

10

主题

6726

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13462
发表于 2020-1-16 23:22:05 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

9

主题

6698

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13405
发表于 2020-1-17 01:59:00 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

6

主题

6753

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13512
发表于 2020-1-18 01:30:00 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

9

主题

6747

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
13503
发表于 2020-1-18 03:36:32 来自手机 | 显示全部楼层
互联网真的是时代的趋势啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表