如何在CentOS和Ubuntu中安装特定版本的软件包?
作为Linux用户,我们经常需要在系统上使用不同版本的软件包。有时,我们需要使用仅在新版本软件包中才有的特定功能,或者系统上的其他软件可能存在兼容性问题,而这些问题只有特定版本的软件包才能解决。这就是安装特定软件包版本非常方便的地方。
在本文中,我们将介绍在CentOS和Ubuntu中安装特定版本软件包的各种方法。我们将探讨使用包管理器、RPM或DEB软件包文件以及从源代码编译的方法。需要注意的是,本文中使用的命令假设您拥有系统上的root或sudo权限。让我们开始阅读本文,并确保阅读到最后才能完全理解。
方法一:使用Yum或Apt-Get包管理器
有时,作为Linux用户,我们需要在系统上安装特定版本的软件包,可能是因为我们想要使用新功能,或者因为较新版本的软件包与系统上的其他软件存在不兼容问题。最简单的方法是使用内置的包管理器,CentOS使用Yum(Yellowdog Updater Modified),Ubuntu使用Apt-Get。这些包管理器允许您安装所需的特定版本软件包。
步骤1 − 列出所有可用版本
在使用Yum方法或命令安装特定版本的软件包之前,必须检查当前机器上所有可用的软件包版本。为此,可以在终端或提示符中使用以下命令 −
yum --showduplicates list [package-name]
例如,如果您想安装Apache Web服务器的1.2.3版本,则可以运行 −
yum --showduplicates list httpd
上述命令将显示指定软件包的所有可用版本列表,包括其对应的存储库来源和安装状态。例如,请参见以下输出 −
httpd.x86_64 2.2.15-69.el6.centos.2 updates httpd.x86_64 2.2.15-69.el6.centos.3 updates httpd.x86_64 2.2.15-69.el6.centos.4 updates httpd.x86_64 3.0.3-1.el6 epel
步骤2 − 安装所需版本
确定要安装的版本后,可以使用以下命令安装它:
yum install [package-name]-[version]
例如,要安装Apache Web服务器的3.0.3版本,可以运行以下命令 −
yum install httpd-3.0.3-1.el6
输出可能如下所示:
Loaded plugins: fastestmirror Setting up Install Process Loading mirror speeds from cached hostfile * base: mirror.its.sfu.ca * extras: mirror.its.sfu.ca * updates: mirror.its.sfu.ca Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:3.0.3-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================================== Installing: httpd x86_64 3.0.3-1.el6 epel 2.7 M Transaction Summary =========================================================================================================================================================== Install 1 Package(s) Total download size: 2.7 M Installed size: 6.3 M Is this ok [y/N]: y Downloading Packages: httpd-3.0.3-1.el6.x86_64.rpm | 2.7 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : httpd-3.0.3-1.el6.x86_64 1/1 Verifying : httpd-3.0.3-1.el6.x86_64 1/1 Installed: httpd.x86_64 0:3.0.3-1.el6 Complete!
在上面的输出中,您将看到包管理器解析依赖关系并下载指定版本的软件包。然后,它安装软件包并验证其安装是否成功。
使用Apt-Get包管理器
当我们需要在Ubuntu系统上安装特定版本的软件包时,可以使用apt-get包管理器方法。Apt-Get是一个命令行包管理实用程序,专为基于Debian的Linux系统(如Ubuntu)设计。要使用Apt-Get命令安装特定版本的软件包,请按照以下步骤操作:
步骤1 − 列出所有可用版本
要使用Apt-Get安装特定版本的软件包,第一步是使用以下命令列出所有可用的软件包版本:
apt-cache showpkg [package-name]
例如,假设我们想安装Python编程语言的2.7.18版本,我们可以编写以下命令:
apt-cache showpkg python
输出将类似于:
Package: python Versions: 2.7.18-1ubuntu1.6 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic-updates_main_binary-amd64_Packages) (/var/lib/dpkg/status) Description Language: File:/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic-updates_main_binary-amd64_Packages MD5: fbafe6f0b
方法二:使用RPM或DEB软件包文件
此方法涉及下载和安装RPM或DEB软件包文件。CentOS使用RPM包管理器,而Ubuntu使用DEB。
首先,让我们谈谈RPM软件包文件。要安装RPM软件包文件,需要从可信来源下载该文件。获得文件后,可以使用以下命令安装它 −
rpm -ivh [package-file-name].rpm
举个例子。假设我们想在我的CentOS系统上安装GIMP图像编辑软件的3.6.1版本,但它在默认存储库中不可用。我们找到了一个名为gimp-3.6.1.rpm的RPM软件包文件,并将其下载到“下载”目录,然后运行以下命令安装软件包:
sudo rpm -ivh gimp-3.6.1.rpm
此处使用sudo命令是因为我们需要root权限才能在系统范围内安装软件包。-ivh选项告诉rpm命令以详细模式安装软件包,这将显示有关安装过程的详细信息,并在安装过程中显示进度条。
如果安装成功,终端输出将类似于:
Preparing... ################################# [100%] Updating / installing... 1:gimp-3.6.1-1 ################################# [100%]
接下来是DEB软件包文件,这些文件用于Ubuntu系统。与RPM软件包类似,您必须首先从可靠的来源下载软件包文件。获得DEB软件包文件后,可以使用以下命令安装它:
sudo dpkg -i vlc_2.4.3.deb
此处使用sudo命令是因为我们需要root权限才能在系统范围内安装软件包。-i选项告诉dpkg命令安装软件包。
如果安装成功,终端输出将类似于:
Selecting previously unselected package vlc. (Reading database ... 234362 files and directories currently installed.) Preparing to unpack vlc_2.4.3.deb ... Unpacking vlc (2.4.3) ... Setting up vlc (2.4.3) ... Processing triggers for desktop-file-utils (0.24-1ubuntu3) ... Processing triggers for mime-support (3.59ubuntu1) ... Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
如果您需要系统存储库中没有的特定软件包版本,则方法二——使用RPM或DEB软件包文件——是一个不错的替代方案。但是,务必从可信来源下载软件包,以避免安装未知来源的软件包可能造成的安全风险。
结论
总之,在CentOS和Ubuntu中安装特定版本软件包的方法有很多,每种方法都有其自身的优缺点。方法一,使用包管理器并指定版本号,是最简单直接的方法,但它依赖于软件包在存储库中可用。方法二,下载和安装RPM或DEB软件包文件,如果软件包在存储库中不可用,这是一个不错的选择,但是需要从可信来源下载软件包。
总的来说,了解这些不同的方法并选择最适合您需求和技能水平的方法非常重要。按照本文中概述的步骤,无论您选择哪种方法,都应该能够成功地在CentOS和Ubuntu中安装特定版本的软件包。