如何使用apt-get安装特定版本的包

时间:2020-03-05 15:28:13  来源:igfitidea点击:

安装特定版本的包可以很有用来避免错误,当我们知道哪个版本的包才能遵循并确保禁用特定程序包,通过持有软件包,因此运行时不会自动更新。
apt-get升级'。

要处理基于Debian的系统包,我们使用apt-get命令。
要运行此命令,我们需要管理权限或者用户使用sudo权限。

在本教程中,将介绍如何在Ubuntu 16.04或者20.04 LT上安装特定版本的包。

1)检查可用版本的包

有时我们可以使用包的版本面临问题或者错误,这可能会导致我们选择一个不遇到错误的版本。
在安装之前,可以使用"APT-Cache Madison"命令查看可用版本的包。
语法是

apt-cache madison package

我们可以看到以下输出

$apt-cache madison virtualbox
virtualbox | 5.0.40-dfsg-0ubuntu1.16.04.2 | http://cm.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages
virtualbox | 5.0.18-dfsg-2build1 | http://cm.archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages

我们还可以使用以下语法命令

apt-cache policy package

就在下面

$apt-cache policy virtualbox
virtualbox:
 Installed: (none)
 Candidate: 5.0.40-dfsg-0ubuntu1.16.04.2
 Version table:
 5.0.40-dfsg-0ubuntu1.16.04.2 500
 500 http://cm.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages
 5.0.18-dfsg-2build1 500
 500 http://cm.archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages

然后,通过两个命令之一,我们可以决定使用官方或者官方Github上的发布版本检查可用版本的包。

2)安装特定版本的包

列出了版本以选择特定的版本时,可以使用"APT-Get Install""命令后跟名称和包的版本安装。
因此,我们需要遵循以下语法:

apt-get install package=version -V

"-V"参数有助于有更多有关安装的详细信息

实际上,我们可以如下所示:

# apt-get install virtualbox=5.0.18-dfsg-2build1 -V
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
   dkms (2.2.0.3-2ubuntu11.5)
   libgsoap8 (2.8.28-1)
   libqt4-opengl (4:4.8.7+dfsg-5ubuntu2)
   libsdl1.2debian (1.2.15+dfsg1-3)
   libvncserver1 (0.9.10+dfsg-3ubuntu0.16.04.1)
   virtualbox-dkms (5.0.40-dfsg-0ubuntu1.16.04.2)
....................
....................

模拟安装

出于某种原因,我们可能需要确保安装不会遇到任何问题。
为此,可以使用尊重语法的-s参数来模拟安装

# apt-get install -s package

如下

# apt-get install -s virtualbox=5.0.18-dfsg-2build1

我们可以看到它显示了安装过程,但它只是一个模拟。

使用版本列出已安装的软件包

我们需要检查已安装包的版本。
我们可以使用"DPKG"命令与"Grep"(后跟包的名称)一起做到这一点

# dpkg -l | grep virtualbox
ii  unity-scope-virtualbox    0.1+13.10.20130723-0ubuntu1     all      VirtualBox scope for Unity
ii  virtualbox                5.0.18-dfsg-2build1             amd64    x86 virtualization solution - base binaries
ii  virtualbox-dkms           5.0.40-dfsg-0ubuntu1.16.04.2    all      x86 virtualization solution - kernel module sources for dkms

如果要过滤信息,则可以使用以下命令

# dpkg -l | grep '^ii' | grep virtualbox | awk '{print  "\t" }'
unity-scope-virtualbox	0.1+13.10.20130723-0ubuntu1
virtualbox	 5.0.18-dfsg-2build1
virtualbox-dkms	 5.0.40-dfsg-0ubuntu1.16.04.2

要列出具有版本的所有已安装的包,我们可以使用dpkg -l命令。