文章插图
在Windows系统下安装软件很简单,只要双击后缀为.exe的文件,然后根据提示连续单击“下一步”按钮即可 。然而在Linux系统下安装软件就没那么容易了,因为我们不是在图形界面下 。所以,你必须学会如何在Linux下安装软件 。
前面我们多次提到了yum命令,它是Red Hat所特有的安装RPM程序包的工具 。使用RPM工具安装某一个程序包时,有可能会因为该程序包依赖另一个程序包而无法安装;而使用yum工具时,就可以连同依赖的程序包一起安装,很方便 。在Rocky里使用yum工具是免费的,但在Red Hat里,使用yum工具需要付费 。在介绍yum工具之前,我们先来了解一下RPM 。
10.1 RPM工具
RPM是Red Hat Package Manager的缩写,由Red Hat公司开发 。它是以一种数据库记录的方式将我们所需要的套件安装到Linux主机的一套管理程序 。也就是说,你的Linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间的依赖关系 。RPM包是预先在Linux机器上编译并打包的文件,安装非常快捷 。但它也有一些缺点,比如安装环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载 。如果依赖的包是系统所必需的,就不能卸载这个包,否则系统会崩溃 。
下面阿铭会到网络上下载rpm文件,请在你的浏览器里打开该网址:
https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/a/,这些rpm后缀的文件就是RPM包 。
每个RPM包的名称都由-和.分成了若干部分 。比如在
acl-2.2.53-1.el8.x86_64.rpm包中,acl为包名,2.2.53为版本信息,1.el8为发布版本号,x86_64为运行平台 。常见的运行平台有i386、i586、i686和x86_64 。需要注意的是,CPU目前分32位和64位,i386、i586和i686都为32位平台,x86_64则为64位平台 。另外,有些RPM包并没有写具体的平台而是noarch(如
adcli-doc-0.8.2-12.el8.noarch.rpm),这说明这个RPM包没有硬件平台限制 。
下面介绍一下RPM工具常用的命令 。
10.1.1 安装RPM包
安装RPM包的命令如下:
# yum install –y wget //安装wget命令,wget为下载工具# wget http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/at-3.1.20-11.el8.x86_64.rpm# rpm -ivh at-3.1.20-11.el8.x86_64.rpmVerifying... ################################# [100%] 准备中... #################################[100%] 正在升级/安装... 1:at-3.1.20-11.el8 ################################# [100%]其中各个选项的含义如下 。
- -i:表示安装 。
- -v:表示可视化 。
- -h:表示显示安装进度 。
【1分钟学会安装和卸载软件 linux卸载软件命令】# rpm -ivh http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/bc-1.07.1-5.el8.x86_64.rpm获取http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/bc-1.07.1-5.el8.x86_64.rpm Verifying... ################################# [100%] 准备中... #################################[100%] 正在升级/安装... 1:bc-1.07.1-5.el8 ################################# [100%]另外,在安装RPM包时,常用的附带参数还包括如下几项 。
- –force:表示强制安装,即使覆盖属于其他包的文件也要安装 。
- –nodeps:表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包 。
升级RPM包的命令为rpm -Uvh filename,其中-U选项表示升级 。
10.1.3 卸载RPM包
卸载RPM包的命令为rpm -e filename,这里的filename是通过rpm的查询功能所查询到的,稍后会作介绍 。下面先查找一个已经安装的包,然后使用-e选项卸载它 。示例命令如下:
# rpm-qaatat-3.1.20-11.el8.x86_64# rpm-eat卸载时,-e选项后面的filename和安装时是有区别的 。安装时,是把一个存在的文件作为参数,而卸载时只需要包名即可 。
10.1.4 查询一个包是否已安装
查询一个包的命令为rpm -q RPM包名,这里的“包名”是不带平台信息和后缀名的 。示例命令如下:
# rpm -q at未安装软件包at # rpm -ivh at-3.1.20-11.el8.x86_64.rpmVerifying...################################# [100%] 准备中... #################################[100%] 正在升级/安装... 1:at-3.1.20-11.el8 ################################# [100%] # rpm -q at at-3.1.20-11.el8.x86_64我们可以使用命令rpm -qa查询当前系统所有已安装的RPM包,限于篇幅,这里只列出前10个,如下所示:
# rpm -qa |headlibevent-2.1.8-5.el8.x86_64 geolite2-city-20180605-1.el8.noarch rpm-plugin-selinux-4.14.2-25.el8.x86_64 centos-gpg-keys-8.1-1.1911.0.8.el8.noarch python3-unbound-1.7.3-8.el8.x86_64 filesystem-3.8-2.el8.x86_64 python3-dateutil-2.6.1-6.el8.noarch ncurses-base-6.1-7.20180224.el8.noarch python3-libselinux-2.9-2.1.el8.x86_64 glibc-langpack-zh-2.28-72.el8.x86_6410.1.5 得到一个已安装的RPM包的相关信息
要得到一个已安装RPM包的相关信息,可以使用命令rpm -qi 包名,这里也不需要加平台信息和后缀名 。示例命令如下:
# rpm -qi atName : at Version : 3.1.20 Release: 11.el8 Architecture: x86_64 InstallDate: 2020年02月06日星期四 03时12分20秒 Group: SystemEnvironment/Daemons Size: 131790License : GPLv3+ andGPLv2+ andISC andMIT andPublicDomainSignature : RSA/SHA256, 2019年07月01日星期一 16时40分54秒, KeyID05b555b38483c65d SourceRPM : at-3.1.20-11.el8.src.rpm BuildDate: 2019年05月11日星期六 09时12分23秒 BuildHost : x86-02.mbox.centos.org Relocations : (notrelocatable) Packager : CentOS Buildsys <bugs@centos.org> Vendor : CentOS URL: http://ftp.debian.org/debian/pool/main/a/atSummary : Job spooling tools Description : Atandbatch readcommands fromstandard inputorfroma specified file. Atallows you tospecify that a command will be run ata particular time. Batch will executecommands whenthe systemloadlevelsdroptoa particular level. Bothcommands useuser's shell. You should install the at package if you need a utility for time-oriented job control. Note: If it is a recurring job that will need to be repeated at the same time every day/week, etc. you should use crontab instead.10.1.6 列出一个RPM包的安装文件
列出一个RPM包的安装文件的命令为rpm -ql 包名,示例命令如下:
# rpm -ql at/etc/at.deny /etc/pam.d/atd /etc/sysconfig/atd /usr/bin/at /usr/bin/atq /usr/bin/atrm /usr/bin/batch /usr/lib/.build-id /usr/lib/.build-id/5b /usr/lib/.build-id/5b/62f43486550b03dd4fc8620421cdb5a191ddcf /usr/lib/.build-id/83/usr/lib/.build-id/83/49b3653cd2bee7e0d8c391862f7c0dd2de32c9 /usr/lib/systemd/system/atd.service /usr/sbin/atd /usr/sbin/atrun /usr/share/doc/at /usr/share/doc/at/ChangeLog /usr/share/doc/at/README /usr/share/doc/at/timespec /usr/share/licenses/at /usr/share/licenses/at/COPYING /usr/share/licenses/at/Copyright /usr/share/man/man1/at.1.gz /usr/share/man/man1/atq.1.gz /usr/share/man/man1/atrm.1.gz /usr/share/man/man1/batch.1.gz /usr/share/man/man5/at.allow.5.gz /usr/share/man/man5/at.deny.5.gz /usr/share/man/man8/atd.8.gz /usr/share/man/man8/atrun.8.gz /var/spool/at /var/spool/at/.SEQ /var/spool/at/spool通过上面的命令可以看出,文件/usr/sbin/atrun是通过安装at这个RPM包得来的 。那么,如何通过文件去查找它的RPM包呢?
10.1.7 列出某个文件属于哪个RPM包
列出某个文件属于哪个RPM包的命令为rpm -qf 文件的绝对路径,示例命令如下:
# rpm -qf /usr/sbin/atrunat-3.1.20-11.el8.x86_64
推荐阅读
- 手把手教你安装Flash插件详细步骤 苹果flash插件怎么安装
- 电脑找不到打印机怎么办,安装打印机找不到打印机怎么办
- 手游风神翼龙如何驯服 你学会了吗
- 1分钟教你快速解锁苹果平板 ipad密码忘记了怎么办
- 网卡驱动怎么安装 如何安装网卡驱动
- 跳舞丸子头扎法 简单六步骤教你学会
- 1分钟快速添加光影详细教程 我的世界光影文件夹在哪
- 国家规定必须装etc吗
- 佳博热敏打印机怎么安装
- 如何安装tomcat服务8.0