rpm
rpm(Redhat Package Manager),几乎所有的 Linux 发行版本都使用了这种形式的命令管理、安装、更新和卸载软件。rpm 命令包含了五种基本功能:安装、卸载、升级、查询和验证。
语法格式:
rpm [option]
rpm 命令常用的参数选项:
选项 | 说明 |
---|---|
-q | 查询软件包 |
-p | 后接以".rpm"结尾的软件包 |
-i | (1) 与-qp一起使用,是"info"的意思,即显示软件包的概要信息 (2) 独立使用,是"install"的意思,即安装软件包 |
-l | 显示软件包中的所有文件列表 |
-R | 显示软件包的依赖环境 |
-v | 显示详细信息 |
-h | 用"#"显示安装进度条 |
-a | 与-q参数搭配使用,用于查询所有软件包 |
-e | 卸载软件包 |
-f | 查询文件或命令属于哪个软件包 |
-U | 升级软件包 |
案例:
$ wget https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
# 查看 rpm 包信息
$ rpm -qpi lrzsz-0.12.20-36.el7.x86_64.rpm
Name : lrzsz
Version : 0.12.20
Release : 36.el7
Architecture: x86_64
Install Date: (not installed)
Group : Applications/Communications
Size : 184846
License : GPLv2+
Signature : RSA/SHA256, Fri 04 Jul 2014 11:35:32 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : lrzsz-0.12.20-36.el7.src.rpm
Build Date : Tue 10 Jun 2014 07:29:11 AM CST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.ohse.de/uwe/software/lrzsz.html
Summary : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.
# 查看包中内容(包可以不安装)
$ rpm -qpl lrzsz-0.12.20-36.el7.x86_64.rpm
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
# 查看一个包下有哪些命令(前提是包已经安装)
$ rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
# 查看包的依赖
$ rpm -qpR lrzsz-0.12.20-36.el7.x86_64.rpm
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libnsl.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
# 安装 rpm 包
$ sudo rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing... ################################# [100%]
package lrzsz-0.12.20-36.el7.x86_64 is already installed
# 安装远程的 rpm 包
$ sudo rpm -ivh https://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
# 查询系统中是否安装了指定的包
$ rpm -qa lrzsz
lrzsz-0.12.20-36.el7.x86_64
# 卸载 rpm 包
# --nodeps 卸载的时候只卸载指定的包而不卸载其依赖的包
# 建议卸载的时候一定要加这个选项,否则可能会卸载掉一些系统必备的包导致损坏
$ sudo rpm -e lrzsz --nodeps
# 查看文件属于哪个 rpm 包(前提是命令已存在)
$ rpm -qf $(which ifconfig)
net-tools-2.0-0.25.20131004git.el7.x86_64
yum
yum(Yellow dog Updater Modified) 是多个 Linux 发行版的软件包管理器,例如 Redhat RHEL、CentOS和Fedora,yum 主要是用于自动安装、升级 RPM 包,可以自动查找并解决 RPM包 之间的依赖关系,yum 命令的语法格式:
yum [option] [command] [package]
yum命令常用的参数选项:
选项 | 说明 |
---|---|
-y | 确认操作 |
--nogpgcheck | 忽略GPG验证 |
-C | 直接使用系统 yum 缓存,不下载更新缓存 |
-q | 不输出信息 |
-v | 显示详细信息 |
yum命令常用的子命令:
命令 | 说明 |
---|---|
yum install httpd | 安装 httpd 软件包 |
yum localinstall httpd-2.2.15-54.el7.centos.x86_64.rpm | 安装本地 RPM 包,包名也可以替换为一个包的下载地址 |
yum remove httpd yum erase httpd | 卸载 httpd 软件包,注意:慎用,会卸载所有的依赖软件包,可能导致其他软件不可用 推荐使用:rpm -e httpd --nodeps |
yum search httpd | 搜索与指定软件包名称相匹配的所有可用的软件包 (模糊匹配) |
yum list httpd | 搜索指定名称的特定软件包 (精确匹配) |
yum info httpd | 获取 httpd 软件包的信息 |
yum update httpd | 更新 httpd 软件包 |
yum deplist httpd | 查看 httpd 软件包的依赖 |
yum list | 列出所有可用的软件,命令输出很多,可以结合 less 命令分页显示 |
yum list installed | 列出所有已经安装的软件 |
yum provides /etc/my.cnf yum provides ifconfig | 查找指定的文件属于哪个软件包 查找命令属于哪个软件包 |
yum check-update | 检查是否有可以更新的软件包 |
yum update | 更新系统中的所有包,即更新系统,upgrade 命令已经废弃 |
yum grouplist | 列出所有可用的包组 |
yum groupinstall 'MySQL Database' | 安装包组下的所有软件包 |
yum groupupdate 'MySQL Database' | 更新包组下的所有软件包 |
yum groupremove 'MySQL Database' | 移除包组下的所有软件包 |
yum groupinfo 'Base' | 查看已安装的包组下面有哪些包 |
yum repolist | 列出启用的 yum 源 |
yumrepolist all | 列出系统中所有的 yum 源,包括禁用的 |
yum --enablerepo=base install httpd | 从指定的 yum 源中安装软件 |
yum --disablerepo=updates,extras install httpd | 安装软件的时候不使用指定的 yum 源 |
yum clean all | 清理所有 yum 缓存 |
yum history | 查看 yum 操作的历史记录 |
针对选项 --enablerepo 和 --disablerepo 的说明: