Linux 程序包管理
功能:将编译好的应用程序文件打包成一个或是几个程序文件, 从而方便程序的安装、卸载、升级、查询和校验等管理工作。
程序包的组成
-
文件包的组成清单, 私有部分;
文件清单
安装卸载时运行的脚本; -
数据库,公共部分。
程序包名称及版本
依赖关系
功能说明
安装生成的各个文件的路径及校验码信息
说明:
arch 与平台有关 x86 x86_64
noarch 与平台无关
管理工具 rpm
包管理工具: rpm
前端工具: yum dnf
获取程序包的途径
(1) 系统发行的程序包光盘或是服务器;
(2) 项目官网
(3) 第三方组织
Fedora - epel
http://pkgs.org
http://rpmfind.net
http://rpm.phone.net
(4) 手动制作
注意: 使用斯三分包需要验证来源的合法性和完整性
Windows 虚拟Linux环境: wine
Linux 虚拟Widow 环境: cywin
查看二进制文件依赖的库文件
ldd /PATH/TO/BINARY_FILE
管理及查看本机装载的库文件
ldconfig
idconfig -p 显示出所有的已经装载的库文件和文件路径的映射关系
配置文件为: /etc/id.so.conf. /etc/id.so.conf.d/*.conf
缓存文件: /etc/ld.so.cache
rpm 命令使用
rpm 可以用来安装、卸载、升级、校验和数据库维护
安装用法 rpm {-i|--install} [install-options] PACKAGE_FILE ...
-v verbose 显示详细信息
-vv 显示详细更信息
-h: 以#显示包管理的执行进度 #表示2%的进度
-i: install 安装
[install-options] 安装选项
--test 安装测试 不真正安装
--nodeps 忽略依赖关系
--replacepkgs 重新安装,替换
--nodegist 不检查包的完整性
--noscript 安装程序但是不执行脚本片段
%pre 安装前脚本 --nopre
%post 安装后脚本 --nopost
%prenu 卸载前脚本 --nopreun
%postun 卸载后脚本 --nopostun
常用安装组合: rpm -ivh rpmpkg
升级用法
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrade 如果安装有旧版本就升级,如果没有就版本就安装, 即安装又升级
freshen 如果安装有旧版本就升级,如果没有旧版本就不执行安装 只升级
常用安装组合:
rpm -Uvh rpmpkg
rpm -Fvh rpmpkg
[install-options]
--oldpackages 降级
--force 强制
注意:
(1) 不对内核使用升级操作, Linux支持多版本并存,因此可以直接安装新版内核;
(2)
查询操作:
rpm {-q|--query} [select-options] [query-options]
-q query 查询操作
-p 表示是一个程序包,还没有安装 , 可以对一个未安装的包做查询操作
[select-options] 挑选
-a all 查询所有已安装rpm包
-f file 查询文件由那个安装包生成
例如: [root@ansible1 ~]# rpm -qf /etc/issue
-g 查询指定包组的程序包
--whatprovides CAPABILITY 查询指定的功能由那个包提供
--whatrequires CAPABILITY 查询指定的功能由那个包依赖
[query-options] 查询
--changelog 查询一个包的修改日志
-c 查询程序包的配置文件, 例如:
[root@ansible1 ~]# rpm -qc ansible
-d, --docfiles 安装生成的文档
-i, --info 查询包的描述信息
-l, --list 查看程序包生成的所有文件列表
--scripts 查看包自带的安装脚本
-R 列出依赖的包
常用查询用法
-qi package
-qf file
-qc package
-ql package
-qd package
-qpi package_file
-qpl package_file
-qa
卸载程序包
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACK-
-e 卸载
校验
rpm {-V|--verify} [select-options] [verify-options]
网友评论