目录
软件包的安装方式
分类 | 安装 | 版本 |
---|---|---|
rpm安装 | 预先编译打包,安装简单 | 软件版本偏低,(依赖包问题难解决) |
yum安装 | 预先编译打包,安装简单(实际上是rpm软件包仓库) | 软件随网络仓库更新(自动安装依赖包) |
源码包 | 手动编译打包,安装繁琐 | 软件版本随意 |
二进制包 | 解压即可使用, 安装简单 | 不能修改源码 |
RPM(RedHat Package Manager)
RPM介绍
RPM(软件包管理器)
是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM
扩展名的文件,与Dpkg
类似。
RPM包命名规则
name: 软件包名称
version: 版本号
count:该版本的编译发布次数
release: 发布版本 el6, el7
arch: 支持的CPU架构,可以为 i386(i686) / x86_64 / noarch(兼容前两者,即32位与64位)
RPM包获取途径
1.阿里云镜像/华为源/网易源
2.各种软件包的官方网站
3.光盘镜像
RPM命令
rpm #基于本地的rpm包进行管理
-i # 安装(install)
-v # 详细过程(verbose)
-h # 在安装过程中显示哈希标记进度条,配合-v使用(hash标记即#)
-e # 卸载(erase)
-U # 升级(update)
-q # 查看指定软件包是否安装,后面加RPM报名(query)
-qa # 查看系统中已安装的所有RPM软件包(query all)
-qi # 查看指定软件的详细信息(query information)
-ql # 列出指定软件的安装目录和文件(query list)
-qc # 查询指定软件的配置文件(query config)
-qd # 查看指定软件的帮助文档(query documentation file)
-qf # 查询目录或文件属于哪个RPM软件包(query file)
-q --scripts # 查看软件安装前后执行的脚本
-p # 查看没有安装的软件包,常用格式 -qip(查看没有安装的软件包详细信息),-qlp(查看没有安装的软件包的安装目录)
# 一些示例
# 联网下载mongodb这个软件,版本号为3.0.0
[root@wqh06 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-mongos-3.0.0-1.el7.x86_64.rpm
# 将mongodb这个软件版本升级为4.0.0
[root@wqh06 ~]# rpm -Uvh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-mongos-4.0.0-1.el7.x86_64.rpm
# 查询命令属于哪个软件包(效果和rpm -qf相同)
[root@wqh06 ~]# rpm -q --file /etc/hosts
setup-2.8.71-10.el7.noarch
# 查看命令属于哪个软件包,前提必须使用绝对路径查询,本地必须要有这个命令
[root@wqh06 ~]# rpm -qf `which ifconfig`
net-tools-2.0-0.25.20131004git.el7.x86_64
# 查询指定的软件包是否安装
[root@wqh06 ~]# rpm -q httpd
httpd-2.4.6-88.el7.centos.x86_64
[root@wqh06 ~]# rpm -q samba
package samba is not installed
# 查询所有的已安装的软件包
[root@wqh06 ~]# rpm -qa | grep tree
tree-1.6.0-10.el7.x86_64
# 查询跟软件包相关的目录和文件
[root@wqh06 ~]# rpm -ql httpd
# 查看一个软件的相关配置文件
[root@wqh06 ~]# rpm -qc httpd
# 显示软件包的本身相关信息
[root@wqh06 ~]# rpm -qi httpd
# 显示未安装的软件包的详细信息
[root@wqh06 zabbix]# rpm -qip zabbix-web-pgsql-3.4.3-1.el7.noarch.rpm
# 显示未安装的软件包的安装目录
[root@wqh06 zabbix]# rpm -qlp zabbix-server-mysql-3.4.14-1.el7.x86_64.rpm
# 显示某个软件包的相关命令
[root@wqh06 ~]# rpm -ql $(rpm -qf /etc/hostname)| egrep \'/usr/sbin/|/usr/bin/\'
# 爬取zabbix的全部rpm包
// 用awk命令
[root@wqh06 ~]# curl -s https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ |awk -F \'["]\' \'{print "wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/"$2}\'|grep \'.rpm\'|bash
// 用sed命令
[root@wqh06 zabbix]# curl -s https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ | sed -nr \'s#.*="(.*)".*#wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/\\1#gp\' | grep \'rpm\' |bash
// 用 awk -F \'["]+\' \'$2~/rpm/\' 替换掉 grep \'.rpm\' ,(精确找出需要下载的href连接的行)
[root@wqh06 zabbix]# curl -s https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ | awk -F \'["]+\' \'$2~/rpm/\'| awk -F \'["]\' \'{print "wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/"$2}\'|bash
YUM(Yellow dog Updater, Modified)
YUM介绍
YUM软件包管理器
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
YUM命令
# 安装软件:yum install tree-x.x.x.rpm 或 yum install tree
# 删除软件:yum remove tree-x.x.x.rpm 或 yum erase tree-x.x.x.rpm
# 升级软件:yum update tree 或 yum upgrade tree
# 查询信息:yum info tree (软件名即可,不要接整个RPM包名)
# 搜索软件:yum search tree (RPM软件包中含有tree字串的)
# 显示软件包依赖关系:yum deplist tree
选项:
-q # 静默执行
-t # 忽略错误
-y # 自动应答yes
--skip-broken # 忽略依赖问题
--nogpgcheck # 忽略GPG验证
check-update # 检查可更新的包
clean all # 清除全部
clean packages # 清除临时包文件(/var/cache/yum 下文件)
clean headers # 清除rpm头文件
clean oldheaders # 清除旧的rpm头文件
deplist # 列出包的依赖
list # 可安装和可更新的RPM包
list installed # 已安装的包(与 rpm -qa 相似)
list extras # 已安装且不在资源库的包
info # 可安装和可更新的RPM包信息(与 rpm -qi 相似)
info installed # 已安装包的详细信息
install[RPM包] # 安装包
localinstall # 安装本地的 RPM包,如果缺少依赖包会自动获取下载安装
update[RPM包] # 更新包
search[关键词] # 搜索包,根据 RPM包名所含字段搜索
provides[关键词] # 搜索包,根据文件名或者命令搜索对应的 RPM包(与 rpm -qf 相似)
reinstall[RPM包] # 重新安装包(如果不小心删除配置文件,install会报错,使用reinstall)
repolist # 显示资源库的配置
remove[RPM包] # 卸载包
history # 查看yum历史命令
info [N] # 查看某条历史yum命令的详细信息
undo [N] # 撤销某条历史yum命令,此命令可以卸载依赖包