1.16. Linux系统程序包管理¶
linux环境下有2种软件管理软件,分别是rpm和dpkg。
发行版代表 |
软件管理机制 |
使用命令 |
线上升级机制 |
---|---|---|---|
Red Hat/Fedora |
RPM |
rpm,rpmbuild |
yum |
Debian/Ubuntu |
DPKG |
dpkg |
apt-get |
1.16.1. rpm包格式¶
样例: ftp-0.17-54.el6.x86_64.rpm
ftp 软件名称
0.17 软件版本
54 编译次数
el6 红帽企业6
x86_64 适合的硬件平台,有i386,i586,i686,x_86_6,noarch
.rpm rpm的扩展名
1.16.2. rpm的优点¶
rpm内部宝航已经编译过程序和配置等数据,可以让用户免去重新编译的困扰。
rpm在被安装之前,会自动检查磁盘容量,操作系统环境,避免错误安装。
rpm文件本身提供软件信息,依赖性软件,方便用户了解软件信息
便于升级、移除、查询和验证工作。
1.16.3. rpm包管理¶
1.16.3.1. 安装¶
安装相关的选项
- -h
以#来表示安装的进度
- -v
显示安装过程的详细信息
- -vvv
更详细的信息
- --test
不执行真正的安装,只是测试下
- --nodeps
忽略依赖关系,可能安装成功,但是没法使用
- --replacepkgs
覆盖安装
- --force
强制安装
1.16.3.2. 升级¶
升级相关的选项
- --oldpackage
降级到旧版本
- -U
升级或者安装
- -F
升级
1.16.3.3. 卸载¶
卸载相关的选项
- -e
卸载
- --allmatches
如果一个安装包安装多个版本,就都卸载
1.16.3.4. 查询¶
查询相关选项
- -q
查询
- -a
所有包
- -f
查询文件有那个包安装的
- -i
查询安装的包信息
- -l
列出包安装提供的文件列表
- -c
列出安装的配置文件
- -d
列出安装的帮助文档信息
- --changlog
列出版本变化信息
- --provides
列出包提供的能力,能使用的命令
- --requires
查询包依赖于那个包
- --scripts
查询包安装前和安装后脚本,preinstall,preuninstall,postinstall,postuninstall
1.16.3.5. 校验¶
校验包使用-V选项
S size 文件大小被修改了
M mode 文件的类型或者属性被修改了。
5 md5 文件的指纹信息不同了
D device 文件的主设备号变了
L link 文件link路径变化了
U user 所有者变了
G group 所属组变了
T time 创建时间变了
P capabilities 提供能力变化
1.16.3.6. 额外选项¶
- -K
验证包
- --nosignature
不检查包来源合法性
- --nodigest
不检查完整性
- --initdb
初始化数据库
- --rebuliddb
重建数据库
1.16.4. yum¶
yum是通过分析rpmde 标头信息,根据各个软件的依赖关系制作出有依赖关系的解决方案, 然后可以自动处理软件的依赖问题,以解决软件安装或移除与升级的问题。
1.16.4.1. yum的配置¶
yum的配置需要配置到/etc/yum.repo.d目录下,且以repo作为后缀。 主要片段
[repoid] 仓库名字,全局唯一的
name 仓库名字
url 仓库的地址,支持ftp,http,file三种协议
enabled 是否启用
gpgcheck 是否包校验
gpgkey gpgkey文件路径
cost 代价,默认1000,越小越优先
yum命令
子命令 |
功能 |
样例 |
---|---|---|
install |
安装包 |
yum install tree |
update |
更新包 |
yum update tree |
downgrade |
降级 |
yum downgrade tree |
check-update |
检查那些升级可用 |
yum check-update |
remove |
移除包 |
yum remove tree |
list |
列出包 |
yum list all |grep tree |
info |
查看包详细信息 |
yum info tree |
provides |
查看包提供信息 |
yum provides tree |
clean |
清空特定缓存 |
yum clean all |
makecache |
制作缓存 |
yum makecache |
groupinstall |
包组安装 |
yum groupinstall ‘development tools’ |
grouplist |
包组列表 |
yum grouplist ‘development tools’ |
groupremove |
包组卸载 |
yum groupremvoe ‘development tools’ |
groupinfo |
包组详细信息 |
yum groupinfo ‘development tools’ |
search |
搜索相关包 |
yum search top |
localinstall |
本地安装 |
yum localinstall tree*.rpm |
reinstall |
重新安装包 |
yum reinstall tree -f |
deplist |
查看包依赖列表 |
yum deplist tree |
repolist |
查看仓库列表 |
yum repolist |
history |
安装历史 |
yum histrory |
yum history 这个是个比较好用的工具,支持redo和undo的。
样例:
[root@centos-155 backup]# yum history
Loaded plugins: fastestmirror
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
39 | install mdadm | 2018-02-10 17:34 | Install | 2
38 | install MariaDB-server M | 2018-02-08 18:55 | I, O | 5 EE
37 | remove mysql | 2018-02-08 18:50 | Erase | 2 EE
36 | install mariadb-server | 2018-02-06 15:38 | Install | 4
35 | install libsemanage-pyth | 2018-02-06 14:47 | Install | 1
34 | install libselinux-stati | 2018-02-06 14:45 | Install | 4
33 | install cifs-utils | 2018-02-06 10:14 | Install | 1
32 | install samba-client | 2018-02-06 09:39 | Install | 3
31 | install samba | 2018-02-06 09:37 | Install | 14
30 | install nfs-utils | 2018-02-04 18:18 | Install | 16
29 | install bind bind-utils | 2018-01-21 03:10 | Install | 1
28 | remove bind | 2018-01-21 01:42 | Erase | 1 EE
27 | install psmisc | 2018-01-20 13:29 | Install | 1
26 | install wget | 2018-01-20 11:12 | Install | 1
25 | remove Maria* | 2018-01-20 10:59 | Erase | 6 EE
24 | install mariadb-server | 2018-01-20 10:22 | Install | 2
23 | remove MariaDB-server Ma | 2018-01-20 09:47 | Erase | 2
22 | install MariaDB-server M | 2018-01-20 09:32 | I, O | 10 EE
21 | reinstall mariadb-server | 2018-01-19 16:53 | Reinstall | 2
20 | install mariadb-server | 2018-01-19 16:51 | Install | 10
history list
[root@centos-155 backup]# yum history undo 39
1.16.5. 源码编译安装¶
源码编译大概流程
./configure –help
./configure
make && make install
添加bin目录到path环境变量
创建软连接到/usr/include下
在帮助文档配置文件安装的帮助man目录
额外文件的配置,比如服务文件,默认配置文件等。