Linux基础之RPM软件包的管理

一、软件包的命名和工具

包命名和包管理工具

  • Application-VERSION-ARCH.rpm: 主包
  • Application-devel-VERSION-ARCH.rpm 开发子包
  • Application-utils-VERSION-ARHC.rpm 其它子包
  • Application-libs-VERSION-ARHC.rpm 其它子包

因为包与包之间会产生依赖关系,所以解决依赖关系的包管理工具就诞生了:

- yum :rpm 包管理器的前端工具
- apt-get :deb 包管理器前端工具
- zypper: suse 上的rpm 前端管理工具
- dnf: Fedora 18+ rpm

库文件

  • 查看二进制程序所依赖的库文件

      ldd /PATH/TO/BINARY_FILE
    
  • 管理及查看本机装载的库文件

      ldconfig  加载库文件
      /sbin/ldconfig -p:  显示本机已经缓存的所有可用库文件
    
  • 名及文件路径映射关系

      配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
      缓存文件:/etc/ld.so.cache
    

二、程序包的来源

(1) 系统发版的光盘或官方的服务器;

CentOS 镜像:

https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com

(2) 项目官方站点

https://www.kernel.org/
http://httpd.apache.org/
...

(3) 第三方组织:
Fedora-EPEL:Extra Packages for Enterprise Linux

Rpmforge:RHEL 推荐包很全

搜索引擎 :

http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/

三、rpm包管理

CentOS 系统上使用rpm 命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护
安装:

rpm {-i|--install} [install-options] PACKAGE_FILE…
    -v: verbose
    -vv:
    -h:以#显示程序包管理执行进度
rpm -ivh PACKAGE_FILE ...
 [install-options]
    --test:  测试安装,但不真正 执行安装,即dry run 模式
    --nodeps :忽略依赖关系
    --replacepkgs | replacefiles
    --nosignature:  不检查来源合法性
    --nodigest :不检查包完整性
    --noscripts :不执行 程序包脚本
    %pre: ; 安装前脚本; --nopre
    %post: ; 安装后脚本; --nopost
    %preun: ; 卸载前脚本; --nopreun
    %postun:  卸载后脚本; --nopostun

包升级:

rpm {-U|--upgrade} [install-options]  PACKAGE_FILE ...
rpm {-F|--freshen} [install-options]  PACKAGE_FILE ...
    upgrade :安装有旧版程序包,则“升级”如果不存在旧版程序包,则“安装”
    freshen:安装有旧版程序包,则“升级”如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
    --oldpackage :降级
    --force: 强制安装

注意:

(1) 不要对内核做升级操作;Linux 支持多内核版本并存,因此,对直接安装新版本内核

(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)

包查询

rpm {-q|--query} [select-options] [query-options]
[select-options]
    -a:  所有包
    -f:查看指定的文件由哪个程序包安装生成
    -p rpmfile:针对尚未安装的程序包文件做查询操作
    --whatprovides CAPABILITY:查询指定的 CAPABILITY由哪个包所提供
    --whatrequires CAPABILITY:查询指定的 CAPABILITY 被哪个包所依赖
rpm2cpio  包文件|cpio –itv 预览包内文件
rpm2cpio  包文件|cpio –id “*.conf” ”  释放包内文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、软件包基础:2、rpm包管理:3、移动lib64库文件修复过程:4、卸载内核修复过程 1、软件包基础 软件运行...
    ALuckyLive阅读 5,639评论 0 0
  • 目录:软件运行环境介绍包管理器rpm 包管理器的使用yum rpm包管理器前端工具的使用编译安装 一、软件运行环境...
    哈喽别样阅读 3,663评论 0 0
  • 软件运行和编译 链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接,分为静态链接和动...
    尘曦的雨阅读 1,748评论 0 0
  • 各大Linux发行版软件包管理参考(http://www.freeoa.net/osuport/botinstal...
    IRONYT阅读 12,090评论 0 12
  • 1.软件的运行和编译  ABI:Application Binary Interface(不同的操作系统有不同的...
    尛尛大尹阅读 1,332评论 0 0