Linux的软件包管理

软件包的安装方式

分类 安装 版本
rpm包 预先编译打包,安装简单 软件版本偏低,(依赖包问题难解决)
源码包 手动编译打包,安装繁琐 软件版本随意
二进制包 解压即可使用, 安装简单 不能修改源码

RPM(RedHat Package Manager)

RPM介绍

RPM(软件包管理器)是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件,与Dpkg类似。
RPM的安装时

RPM包命名规则

Linux的软件包管理

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)
# 一些示例

# 联网下载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 ~]# 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   


Linux的软件包管理

上一篇:【Linux】CentOS7下安装JDK详细过程


下一篇:Linux 内存回收机制