rpm程序包管理器
程序包管理
rpm 命令
作用安装升级卸载校验
为什么rpm结尾
包管理都是以rpm方式
-i 安装 +包
安装的时候一定要在当前目录
-ivh
-v显示信息
vv 详细信息
-h 进度条 %
安装之前测试加 ---test
有时候会出现依赖关系提示
如果忽略依赖关系加
--nodeps
如果用了--nodeps之后,没法用只能卸了重新按依赖关系安装
如果配置文件改错了,要重新安装
但是重新安装不一定要卸载 加 --replacepkgs
但是重新安装的时候配置文件不会更新
如果要让配置文件恢复,要删掉配置文件再重新安装
安装卸载的时候会有使用到脚本(四类脚本)
如果 没有脚本就用--noscrip
-e 卸载
也可以加vh
不同点:就写当前包名就可以
--allmatch 把匹配到的版本都删除
--nodeps 不管依赖关系
问题?
如果安装zsh,并且在zsh环境下,zsh可以被卸载但是,并且状态还是个0(成功),但是shell环境还是在zsh里面
解答:shell和其他程序不一样,是因为shell启动的时候会有一个子进程,删除的时候的确会删掉shell的内容,但是子进程还是存在的。我们还可以使用zsh,但是退出当前zsh之后,我们就再也进不去zsh了,只能重新安装之后才可以再进去。但是,如果其他程序的话,就一定不可以在运行的时候删除了,而且不一定会有子进程存在。删掉了就没有了。
-Uvh 加包
升级
如果没安装自动安装
-oldpackage降级
--force 强制升级
查询 -q 加包名就可以
查询指定的程序包是否已经安装
-a 所有安装过的包
校验:
-V 可以校验出什么东西被修改掉
大小 权限 内容 主设备号 链接 属主 属组 mtime变化 功能
验证包的合法性和完整性
来源合法
导入秘钥
rpm --import /etc/pki/rpm-gpg/
-V 都是存在数据库里面,查询校验操作都是按数据库来的
rpm数据库
rpmdb
--initdb --dbpath=path
--rebuilddb
程序包管理器
***命名规则
源码包:
VERSION
name-主版本号.副版本号.release.tar.gz
安装包:
name-Version-relase.arch.rpm
Version:主版本号.副版本号
relase.arch
表示在什么平台使用
el7红帽7
noarch
和平台无关
zziplib-utils(名字)
0.13(主版本)
62-5(副版本)
el7(红帽7)
x86_64(平台)
-----------------------------------------
拆包:
拆成主包和次包
一个包包含很多功能
不一定全部需要
一类是功能提供组件
一类是开发库组件
一般来说主包:name-Version-release.arch.rpm
次包:name-function-Version-release.arch.rpm
function:
devel
utils
libs
使用次包先要装主包
程序包管理器
编译安装
主要的思路就是先获取源码包,然后完善编译环境,然后预编译,然后编译,然后安装,然后配置环境变量
程序包获取
1下载
2自己编译
一定要坚持合法性