RPM
RPM是Red Hat Package Manager的缩写,它是一种用于安装、卸载、升级和管理RPM包的工具。RPM使用一种数据库记录的方式来将软件安装到Linux系统,可以自动解决依赖性问题,并且提供了查询和校验等功能。
以下是使用rpm的基本操作:
- 安装软件:使用
rpm -i
命令后面跟上软件的rpm包路径来安装软件。例如:rpm -i package.rpm
。 - 卸载软件:使用
rpm -e
命令后面跟上软件的名称来卸载软件。例如:rpm -e package_name
。 - 升级软件:使用
rpm -U
或rpm -F
命令后面跟上软件的rpm包路径来升级软件。升级会覆盖旧版本,如果该软件包未安装则进行安装。 - 查询已安装的软件包:使用
rpm -q
命令后面跟上软件的名称来查询已安装的软件包。例如:rpm -q package_name
。 - 查询已安装的软件包详细信息:使用
rpm -qi
命令后面跟上软件的名称来查询已安装的软件包的详细信息。例如:rpm -qi package_name
。 - 查询某个文件属于哪个rpm包:使用
rpm -qf
命令后面跟上文件的路径来查询某个文件属于哪个rpm包。例如:rpm -qf /path/to/file
。 - 显示已安装的rpm包依赖关系:使用
rpm -vv
命令后面跟上软件的名称来显示已安装的rpm包依赖关系。
RPM命令有很多选项,以下是一些常用的选项:
-i
:表示安装。-v
:表示详细信息。-h
:以"#"号显示安装进度。-q
:查询指定包名。-e
:卸载指定包名。-U
:升级软件,若未软件尚未安装,则安装软件。-F
:升级软件。-V
:对RPM包进行验证。--nodeps
:忽略依赖关系(不建议使用)。-qi
:列出已安装的这个包的标准详细信息。-ql
:列出rpm包的文件内容。
另外,RPM默认会将软件包信息写入/var/lib/rpm/
目录下的数据库档案中,可以用来软件查询、软件升级的版本比较、数字签名等。SRPM是RPM源代码包,可以在具体的安装环境下编译成RPM包再进行安装。
在使用RPM时,需要注意一些常见的问题。例如,如果依赖关系不满足,RPM会停止安装并显示错误信息。这时可以使用--nodeps
选项忽略依赖关系进行安装,但可能会影响软件正常运行。另外,如果需要卸载某个软件包,需要先确保该软件包没有其他依赖关系或服务的依赖,否则可能会造成系统不稳定或服务中断等问题。
YUM
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
以下是使用yum的基本操作:
- 安装软件:
- 本地安装:如果本地有相关的rpm文件,可以用以下命令进行安装:
yum localinstall ur.rpm
。 - 网络安装:需要安装某个软件时,可以在命令中添加该软件的名称进行搜索并安装,例如:
yum install software_name
。
- 更新软件:使用
yum update
命令可以更新系统中已安装的所有软件。 - 卸载软件:使用
yum remove
或yum uninstall
命令可以卸载已安装的软件。 - 查询软件:使用
yum list
命令可以查询本地已安装的所有软件,也可以查询指定软件是否已安装。 - 设定本地的yum:设定好了本地的yum之后,就可以方便地进行安装(例如使用fc5自带的yum进行安装)。
- 自动解决增加或删除rpm包时遇到的依赖性问题:yum能自动解决在增加或删除rpm包时遇到的依赖性问题。
- 查看已安装的软件包列表:使用
yum list installed
可以查看已安装的软件包列表。 - 清除缓存:使用
yum clean all
可以清除缓存,释放空间。
另外,还有一些关于yum的介绍:
- Yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
- Yum可以同时配置多个资源库(Repository)。
- Yum的特点是可以同时配置多个资源库(Repository),可以简洁的配置文件,自动解决增加或删除rpm包时遇到的依赖性问题,使用方便,保持与RPM数据库的一致性。
使用
yum install <package_name>
命令可以安装指定的软件包。
yum info <package_name>
命令可以显示有关指定软件包的详细信息,如版本、描述等。
yum search <keyword>
命令进行搜索。
yum remove <package_name>
命令可以卸载已安装的软件包。
yum update
命令可以更新系统中所有已安装的软件包到最新版本。
yum repolist
命令可以查看当前系统中配置的软件包仓库列表。
yum list installed
命令可以列出系统中已安装的所有软件包。
常用选项
-y
:自动回答所有提示为"yes",用于脚本中的无交互安装。
--nogpgcheck
:忽略GPG检查,用于安装未经签名的软件包。
--skip-broken
:跳过有依赖问题的软件包,继续安装其他软件包。
示例
(以安装firewall为例)
我们可以先去搜索有没有这个包的信息,使用yum info <package>, 发现没有我们要的包,于是去搜索是否存在,发现包名叫做 firewalld.noarch 于是我们查看这个包的信息,通过它的描述,我们可以知道这就是我们需要的软件,于是用yum install <package> 下载安装
安装好了,我们通过yum list installed来查看下载的包,但是鉴于输出太多,我们使用管道符号链接grep进行过滤,得到有firewalld的软件。至此就安装完成了。卸载时使用yum remove <package> 此时加上 -y 选项,与安装时对比我们不需要再手动输入确定(y)。
在使用yum时,需要注意几个问题。在第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的资源。如果在下载过程中出现问题,可以尝试检查网络连接或者更换yum源。同时,为了避免在安装或更新软件时出现依赖性问题,应该定期更新系统,并保持与最新版本的软件包一致。
补充
组安装
Yum还提供了一种按组安装软件包的方式,使用 yum grouplist
可以查看可用的软件包组。
使用 yum groupinstall <group_name>
可以安装一个软件包组,如 yum groupinstall "Development Tools"
。
使用 yum groupremove <group_name>
可以卸载一个软件包组。
示例
rpm文件鉴别
.rpm和.src.rpm文件都是RPM包格式,但它们之间存在一些重要的区别:
- 内容:.rpm文件包含了已编译的二进制程序和已安装的文件,可以直接在系统中运行。而.src.rpm文件包含了未编译的源代码,需要经过编译和安装才能使用。
- 安装方式:.rpm文件可以通过rpm命令直接安装,而.src.rpm文件需要使用特别的命令来安装。例如,在Red Hat系列发行版中,可以使用
rpm --rebuild
命令将.src.rpm文件编译并安装到系统中。 - 适用场景:.rpm文件适用于已经编译好并且可以直接运行的程序,而.src.rpm文件适用于需要从源代码编译和安装的程序。
从RPM包名中,我们可以看出它支持的平台类型,通常在包名中会包含相关的硬件平台信息。例如,i386表示该RPM包适用于x86架构的Intel或AMD的处理器,而i586、i686和x86_64则表示适用于更广泛的硬件平台。类似地,sparc表示适用于SPARC架构的处理器,alpha表示适用于DEC Alpha架构的处理器。
以mysql为例
mysql-community-server-5.7.44-1.el7.x86_64.rpm
这个文件名
5.7.44
是该包的版本号。
1
是该版本的修订号。
el7
表示该RPM包适用于Red Hat Enterprise Linux 7或CentOS 7等基于RHEL 7的发行版。
x86_64
表示该RPM包适用于64位的x86架构处理器。
.noarch表明这个rpm包支持所有的LInux发行版。例如刚刚的firewalld.noarch