Linux中國

如何在安裝之前檢查 Linux 軟體包的版本?

大多數人都知道如何在 Linux 中查找已安裝軟體包的版本,但是,你會如何查找那些還沒有安裝的軟體包的版本呢?很簡單!本文將介紹在 Debian 及其衍生品(如 Ubuntu)中,如何在軟體包安裝之前檢查它的版本。對於那些想在安裝之前知道軟體包版本的人來說,這個小技巧可能會有所幫助。

在安裝之前檢查 Linux 軟體包版本

在基於 DEB 的系統中,即使軟體包還沒有安裝,也有很多方法可以查看他的版本。接下來,我將一一介紹。

方法 1 – 使用 Apt

檢查軟體包的版本的懶人方法:

$ apt show <package-name>

示例:

$ apt show vim

示例輸出:

Package: vim
Version: 2:8.0.1453-1ubuntu1.1
Priority: optional
Section: editors
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Vim Maintainers <[email protected]>
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 &apos;-a&apos; switch to see it

正如你在上面的輸出中看到的,apt show 命令顯示了軟體包許多重要的細節,例如:

  1. 包名稱,
  2. 版本,
  3. 來源(vim 來自哪裡),
  4. 維護者,
  5. 包的主頁,
  6. 依賴,
  7. 下載大小,
  8. 簡介,
  9. 其他。

因此,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 &apos;-a&apos; 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&apos;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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國