Linux软件管理:源代码、RPM

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014565127/article/details/88751835

源代码

  • 绝大多数开源软件都是直接以源代码形式发布
  • 源代码一般会被打包成tar.gz的归档压缩文件
  • 程序源代码需要编译成为二进制形式之后才能够运行使用
  • 源代码基本编译流程:
  1. ./configure 检查编译环境、相关库文件以及配置参数并生成makefile
  2. make对源代码进行编译,生成可执行文件
  3. make install 将生成的可执行文件安装到当前计算机中
  • 源代码形式的软件使用起来较为麻烦,但是兼容性及可控制性较好
  • 开源软件一般都会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系(使用某软件需要先安装其他软件)
    (这里只是暂时做了解,具体的使用暂时不介绍)

RPM

  • 源代码形式的缺点:操作复杂、编译时间较长、极容易出现错误
  • 源代码形式的优点:适用所有系统、可定制。
  • 为了方便使用,Erik Troan和Marc Ewing开发了RPM(Redhat package manager)
  • RPM通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理
  • RPM设计目标如下:
  1. 使用简单
  2. 使用单一软件包格式文件发布(.rpm文件)
  3. 可升级
  4. 追踪软件依赖关系
  5. 基本信息查询
  6. 软件验证功能
  7. 支持多平台

命名规范

RPM软件包常用命令规范:
RPM软件包常用命令规范

RPM依赖关系

树形依赖:
A→B→D
B→E
A→C→F
在这里插入图片描述
环形依赖:
A→B→C→A
在这里插入图片描述
模块依赖:
模块依赖查询网站 www.rpmfind.net

RPM基础命令

安装软件必须在root用户下。

  • 安装软件:rpm -i software.rpm
  • 卸载软件:rpm -e software(后面只跟程序名字!)
  • 升级形式安装:rpm -U software.rpm
  • rpm支持通过http、ftp协议安装软件:
    rpm -ivh http://www.test.net/software.rpm

可以加入以下参数:

  • -v:verbose显示详细信息
  • -h:hash显示进度条

RPM查询

RPM会保存软件相关的很多信息,可以通过以下命令查询:

  • rpm -qa :列出所有安装的rpm软件
  • rpm -qf filename :查询目标文件属于哪个rpm包
  • rpm -qi packagename :查询指定已安装rpm软件的信息
  • rpm -ql packagename :查询指定已安装rpm软件包含的文件
  • rpm -qip softname.rpm :查询rpm文件的信息
  • rpm -qlp software.rpm :查询rpm文件包含的文件

RPM验证

  • 软件在传播过程中可能会被恶意的修改,所以为了安全起见现代系统都加入了对软件的验证功能
  • 验证已安装的软件:rpm -V 已经安装的包名
    验证内容中的8个信息的具体内容如下:
    在这里插入图片描述
    验证结果的文件类型:
    在这里插入图片描述
  • 验证一般使用非对称加密算法,所以需要一个秘钥
  • 导入秘钥:rpm --import RPM-GPG-KEY-CentOS-6
  • 验证rpm文件:rpm -K software.rpm

RPM包中文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径
分析一下:

  • rpm2cpio:将rpm包转换为cpio格式的命令
  • cpio:是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
    cpio的格式:cpio 选项 <[文件|设备]
    选项:
    -i:copy-in模式,还原
    -d:还原时自动新建目录
    -v:显示还原过程

我们在丢失了一些系统文件的时候,不需要把整个系统都重新安装,只需要把相应缺失的文件提取出来,还原至应在的目录即可。

That’s all.


环境:
  软件版本:VMware® Workstation 14 Pro
  Linux系统版本:CentOS 7 ×86_64 1511

如有纰漏,望不吝指出,不胜感激。

猜你喜欢

转载自blog.csdn.net/u014565127/article/details/88751835