Linux 入门记录:十九、Linux 包管理工具 RPM
2024-08-27 22:34:35
一、源代码管理
绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为:
- ./configure:解压缩后运行该命令,它主要检查编译环境、相关库文件以及配置参数并生成 makefile
- make:对源代码进行编译,生成可执行文件
- make install:将生成的可执行文件安装到计算机中
源代码形式的软件使用起来较为麻烦,但是兼容性和可控性较好。并且开源软件一般会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系(使用某软件需要先安装其他软件)。
二、RPM(RPM Package Manager,RPM包管理器)
使用源代码形式安装软件的优点是适用于所有系统、可定制,而缺点则是操作复杂、编译时间较长、极容易出现错误。为了方便使用,Erik Troan 和 Marc Ewing 开发了 RPM(RPM Package Manager,RPM 包管理器),RPM 最早是应用在 RedHat(红帽)中的。
1.设计目标
RPM 通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。RPM 的设计目标如下:
- 使用简单
- 使用单一软件包格式文件发布(.rpm 文件)
- 可升级
- 追踪软件依赖关系
- 基本信息查询
- 软件验证功能
- 支持多平台
2.命名规范
packagename-1.2.0-30.el6.x86_64.rpm
(包名-版本号-操作系统-硬件平台)
其中,
操作系统:el6 表示 RedHat 6.x 或 CentOS 6.x 操作系统。
硬件平台:x86_64 表示 64 位平台,i386 表示 32 位平台,noarch 表示不需要特定的硬件平台(跨平台)。
3.基本命令
安装包:
安装包:rpm -i packagename.rpm
卸载包:
rpm -e packagename
升级包:
rpm -U packagename-new.rpm
通过 http、ftp 协议安装:
rpm - ivh http://www.domainname.com/packagename.rpm
常用参数:
-v 显示详细信息
-h 显示进度条
-i 安装包
-e 卸载包
-U 更新(升级)包
-q 查询
-a 查询所有已安装包
-i 显示包信息
-h 取hash(哈希)
-f 查询文件属于哪个包
-p 未安装包的信息
-l 列出包里的文件
三、RPM查询
rpm -qa 列出已安装的所有rpm包
rpm -qa | grep '.*gnome.*' 列出所有名称含有gnome的包 rpm -qf filename 查询目标文件属于哪个包 rpm -qi package 获取一个已安装包的相关信息
rpm -qip package.rpm 获取一个未安装包的相关信息 rpm -ql package 获取一个已安装包内的文件列表
rpm -qlp package.rpm 列出一个未安装包内的文件列表
四、RPM验证
软件包在传播的过程中可能会被恶意地修改,所以为了安全起见,现代系统都加入了对软件包的验证功能。
验证一般使用非对称加密算法,所以需要一个公钥。导入公钥的方法是:
rpm --import /path/to/key_file
验证未安装的软件包:
rpm -K package.rpm
验证已安装的软件包:
rpm -V package
参考链接:
最新文章
- nth-of-type在选择class的时候需要注意的一个小问题
- 使用nuget打包类库并发布
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
- iOS - 定制多样式二维码
- __attribute__ 变量对齐
- 论那些年我们讨论过的Bank系统!
- NoSQL聚合数据模型
- jdbc连接池中c3p0的配置文件的详解以及在在java中如何使用
- Apache Shiro入门实例
- css helper class
- Android常见开源解决方案
- bindingredirect 没有效果
- 怎么将Emeditor设置成网页查看源代码的默认编译器
- css块级元素居中
- 【一天一道LeetCode】#53. Maximum Subarray
- 如何重置Sitecore CMS中的管理员密码
- random(随机模块)
- 详解 HTML5 中的 WebSocket 及实例代码-做弹幕
- Groovy 读取json文件,并用gson反序列化为List集合
- Latex中为作者添加多个单位属性(IEEE模板)
热门文章
- IE8 兼容CSS3 使用 PIE.htc
- 【.Net】C#文本文件(.txt)读写
- BZOJ4767 两双手(组合数学+容斥原理)
- 进程间通讯-3(Manager)-实现数据的同时修改
- Oracle 物化视图创建以及常见问题
- [CF1083B]The Fair Nut and Strings
- POJ3678:Katu Puzzle——题解
- BZOJ1058:[ZJOI2007]报表统计——题解
- BZOJ2038:[2009国家集训队]小Z的袜子——题解
- bzoj1211: [HNOI2004]树的计数(purfer编码)