标签:tar 依赖 ash 规范 rpm包 过程 工具 包名 直接
绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为:
源代码形式的软件使用起来较为麻烦,但是兼容性和可控性较好。并且开源软件一般会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系(使用某软件需要先安装其他软件)。
使用源代码形式安装软件的优点是适用于所有系统、可定制,而缺点则是操作复杂、编译时间较长、极容易出现错误。为了方便使用,Erik Troan 和 Marc Ewing 开发了 RPM(RPM Package Manager,RPM 包管理器),RPM 最早是应用在 RedHat(红帽)中的。
RPM 通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。RPM 的设计目标如下:
packagename-1.2.0-30.el6.x86_64.rpm
(包名-版本号-操作系统-硬件平台)
其中,
操作系统:el6 表示 RedHat 6.x 或 CentOS 6.x 操作系统。
硬件平台:x86_64 表示 64 位平台,i386 表示 32 位平台,noarch 表示不需要特定的硬件平台(跨平台)。
安装包:
安装包: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 -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 --import /path/to/key_file
验证未安装的软件包:
rpm -K package.rpm
验证已安装的软件包:
rpm -V package
参考链接:
标签:tar 依赖 ash 规范 rpm包 过程 工具 包名 直接
原文地址:http://www.cnblogs.com/mingc/p/7624453.html