以前Linux程序的开发者都是通过Tarball分发程序,让用户通过make指令客制化安装,但有更简便的方式:就是将编译好的可执行软件给使用者安装
| 管理机制 | linux distribution | 安装包安装指令 | 线上安装指令 |
|---|---|---|---|
| RPM | Red Hat / Fedora | rpm, rpmbuild | yum |
| dpkg | Debian / Ubuntu | dpkg | apt-get |
dpkg、RPM将编译好的程序打包,方便用户安装,但也有以下问题:
为了解决上面的问题,SRPM(Source RPM)的安装文件中含有未编译的源码,通常以xxx.src.rpm命名,可根据自身需要修改配置文件安装软件
命令 rpm 可安装.rpm格式的安装包
-i安装,-v查看安装信息,-h列出安装进度,若要强制安装则用以下参数
| 参数(两个-) | 使用时机 | 影响 |
|---|---|---|
| –nodeps | 因为软件相依性无法安装 | 软件可能无法使用 |
| –replacefiles | 安装时已存在某文件或出现版本不符的信息,强制覆盖 | 覆盖的文件无法还原 |
| –replacepkgs | 重新安装已安装的软件 | |
| –force | –replacefiles + --replacepkgs | |
| –test | 测试当前软件是否可以安装,用于找出相依性 | |
| –justdb | 由于PRM资料库损坏或不明原因错误时,更新软件在资料库的内容 | |
| –nosignature | 忽略签名 | |
| –prefix | 指定安装路径 | |
| –noscripts | 不让该软件在安装过程中执行某些指令 |
-U 软件没有安装则直接安装,若有安装则更新,-F 若软件没有安装则不会安装,若有安装则更新
查询是根据 /var/lib/rpm/ 的资料,-q仅查询是否安装,-qa查询所有已安装,-qi列出详细信息,-l 列出该软件的文件,-qc列出该软件的配置文件,-qd列出该软件的说明书,-qR 列出该软件的相依性文件,-qf 找出文件属于哪个软件,-q–scripts列出安装后需要执行的脚本,-qp [ilcdR] 与上面操作一样(查询未安装软件)

验证是通过比较/var/lib/rpm数据库的内容和当前linux下软件的文件,-V [software]列出某软件被改动过的文件,-Va列出系统上所有可能被改动过的文件,-Vp file 列出某软件可能被改动过的文件,-Vf 列出某文件是否被改动过
若一个文件的所有信息都被改变,则输出
SM5DLUGTP cdglr filename
SM5DLUGTP分别表示:
cdglr 分别表示:
上面的验证,若/var/lib/rpm 下的数据库本身就有问题,那就无法保证软件的正确性,此时可利用签名,步骤如下

卸载一定要从上层往下卸载,-e 即可卸载软件
yum会自动处理软件相依性,并可以通过网络在线安装,参数-y安装过程自动回复yes,–installroot=/xxx指定安装目录
yum软件库配置文件放置在 /etc/yum.repos.d,需自行创建xxx.repo,规则有
若修改了默认的配置文件,需yum clean all更新/var/cache/yum 的本机软件库清单
search 搜索某个关键字,list列出yum管理的软件,info列出详细信息,provides根据文件搜索软件
install 安装,update 更新,remove 卸载
yum还可以一次性安装一个群组的软件,grouplist 列出所有可使用群组,groupinfo查询群组包含的软件,groupinstall安装群组,groupremove移除群组
命令 rpmbuild可操作.src.rpm文件,–rebuild 编译打包成.rpm安装包,–recompile编译打包并安装,通过rpm下载.src.rpm,其会在/home/xxx/rpmbuild/,其下目录意义分别是