Redhat Packages Manager,是红帽推出的软件包管理工具。
例:bash-4.2.46-31.el7.x86_64
bash:软件名称
4.2.46:版本号
31.el7:发行次数
x86:硬件平台
64:扩展名(64位)
源码包:手动编译打包,安装繁琐。
二进制包:解压即用,安装简单。
语法:
rpm [参数] [软件包名称]
参数:
-i:安装软件包
-h:显示进度条
-v:显示详情
示例:
#本地 IOS 镜像文件
##挂载镜像文件至 /mnt 目录下
~]# ls /mnt/
~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only(可以忽略)
~]# ls /mnt/
CentOS_BuildTag EFI EULA GPL images isolinux LiveOS Packages repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL
##当 /mnt 目录下有内容后说明已经挂载成功了,下面开始安装工具 tree
~]# rpm -ihv /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tree-1.6.0-10.el7 ################################# [100%]
使用 rpm 安装软件时如果遇到一个软件包依赖另外一个软件包,这个时候需要手动去安装那个依赖的软件包,但是有些工具需要的依赖可不仅仅是一两个依赖那么简单。所以 CentOS 软件管理使用 yum 的比较多一些,yum 可以自行解决依赖的问题。
参数:
-U:更新软件
例:zabbix
#安装低版本
~]# rpm -ihv https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/6/x86_64/zabbix-release-6.0-1.el6.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/6/x86_64/zabbix-release-6.0-1.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.ekImXT: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-6.0-1.el6 ################################# [100%]
~]# rpm -qa | grep zabbix-release-6.0-1.el6
zabbix-release-6.0-1.el6.noarch
#更新
~]# rpm -Uhv https://mirrors.aliyun.com/zabbix/zabbix/6.5/rhel/6/x86_64/zabbix-release-6.5-1.el6.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/6.5/rhel/6/x86_64/zabbix-release-6.5-1.el6.noarch.rpm
warning: /var/tmp/rpm-tmp.1MtLDU: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-6.5-1.el6 ################################# [ 50%]
Cleaning up / removing...
2:zabbix-release-6.0-1.el6 ################################# [100%]
~]# rpm -qa | grep zabbix
zabbix-release-6.5-1.el6.noarch
参数:
-e:卸载软件
示例
~]# rpm -e zabbix-release
~]# rpm -qa | grep zabbix
rpm -q:在系统中查找某个软件包
~]# rpm -q tree
tree-1.6.0-10.el7.x86_64
rpm -qa:列出所有已安装的软件包
~]# rpm -qa | grep tree
tree-1.6.0-10.el7.x86_64
rpm -ql:列出软件所有文件所在路径
~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
rpm -qc:查看软件包的配置文件
~]# yum install nginx -y
~]# rpm -qc nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
rpm -qf:查询系统已安装的命令输入那个软件包(需要加命令绝对路径)
~]# which nginx
/usr/sbin/nginx
[root@localhost ~]# rpm -qf /usr/sbin/nginx
nginx-1.20.1-10.el7.x86_64
yum 于 rpm 一样,也是一个软件包管理工具,不过 yum 可以自动处理软件包依赖关系。
yum 源其实就是 rpm 包仓库,配置 yum 源指的就是指定 yum 从哪个软件仓库下载。
yum 源(repo文件存放位置:/etc/yum.repos.d/)
2.1.1.手动创建 reop 文件
2.1.2.使用下载命令下载 repo 文件
2.1.3.使用 yum 安装(yum install epel-release -y)
阿里:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
163:欢迎访问网易开源镜像站
中科大:USTC Open Source Software Mirror
清华:https://mirrors.tuna.tsinghua.edu.cn/
#单个软件
~]# yum install sl -y
#多个软件
~]# yum install sl tree -y
#先将 rpm 包下载至本地
~]# wget https://mirrors.aliyun.com/epel/7/x86_64/Packages/a/aalib-libs-1.4.0-0.22.rc5.el7.x86_64.rpm
#本地安装
~]# yum localinstall aalib-libs-1.4.0-0.22.rc5.el7.x86_64.rpm -y
#查看系统中哪些软件包可以更新
~]# yum check-updates
#升级已安装的软件包
~]# yum update curl
#对所有软件进行升级,适合刚装完系统使用。运行一段使用的话会导致库文件发生变化。
~]# yum update
#查询已安装与未安装的软件包
~]# yum list
#查询系统中已安装的软件包
~]# yum list installed
~]# yum remove sl
#查看可用状态的 yum 源仓库
~]# yum repolist
#查看所有状态的 yum 源仓库
~]# yum repolist all
enabled 的值控制是否启用仓库
0=禁用
1=启用
#启用状态
~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
#禁用状态
~]# cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
~]# yum provides sl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
sl-5.02-1.el7.x86_64 : Joke command for when you type 'sl' instead of 'ls'
Repo : @epel
PS:如果查询不到,需要检查下命令是否写错,命令没有问题的话说明软件仓库中没有,需要添加更多的 yum 源。
keepcache 的值控制是否启用缓存,cachedir 缓存路径
0=禁用
1=启用
#禁用状态
~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
#启用状态
~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
#安装一个软件
~]# yum install sl -y
#清除所有软件包的信息
~]# yum clean all
#清除所有缓存的软件包
~]# yum clean packages
#安装一整个组的软件
~]# yum groups list
#安装组包
~]# yum groups install "Development and Creative Workstation"
#删除组包
~]# yum groups remove "Development and Creative Workstation"