RPM包管理常用命令和小知识

1 常用命令

  • 如何查看已经安装的rpm包?
yum list installed |grep xxx
  • 如何查看rpm包里打包了什么?
rpm -qpl packetname.rpm
  • 如何解压rpm包
直接解压查看rpm包中的内容
rpm2cpio jdk-linux-x64.rpm |cpio -idmv

-i或--extract:执行copy-in模式,还原备份档
-d或--make-directories:如有需要cpio会自行建立目录
-m或preserve-modification-time:不去更改文件的更改时间
-v或--verbose:详细显示指令的执行过程
  • 如何安装srpm?
    在这里插入图片描述
  • 如何查看SPEC里面宏的定义值
rpm --eval xxx
例如:
rpm --eval %{buildroot}

/root/rpmbuild/BUILDROOT/%{NMAE}-%{VERSION}-%{RELEASE}.x86_64
其中%{NAME} %{VERSION} %{RELEASE}就是SPEC开头写的Name,Version,Release

rpm --eval %{kernel_module_package}
  • 如何查看spec脚本中的宏

您可以查看 /etc/rpm/* 和 /usr/lib/rpm,以及 /usr/lib/rpm/macros 以进一步了解宏。或使用 rpm --showrc 显示当前 RPM 所使用的宏变量和值(根据 rpmrc 和宏配置文件)

在这里插入图片描述

  • -n参数 n是name

2 小知识

  • %buildroot 等价于$RPM_BUILD_ROOT
  • %clean 不写的话,默认BUILDROOT下的文件会被默认删除的
  • %files 基础
    **您应该列出该软件包拥有的所有文件和目录。**尽量使用宏代替目录名,查看宏列表 Packaging:RPMMacros(例如:使用 %{_bindir}/mycommand 代替 /usr/bin/mycommand)。如果路径以 “/” 开头(或从宏扩展),则从 %{buildroot} 目录取用。否则,假设文件在当前目录中(例如:在 %{_builddir} 中,包含需要的文档)。如果您的包仅安装一个文件,如 /usr/sbin/mycommand,则 %files 部分如下所示:
%files
%{_sbindir}/mycommand
  • %defattr(<文件权限>, <用户>, <用户组>, <目录权限>)
    第 4 个参数通常会省略。常规用法为 %defattr(-,root,root,-),其中 “-” 表示默认权限。

3 参考资料

  • https://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh-cn#.25files_.E9.83.A8.E5.88.86 (推荐,很详细,中文)
  • https://blog.csdn.net/biaotai/article/details/108610288
  • https://blog.csdn.net/get_set/article/details/53453320
  • http://rpm.org/documentation.html (推荐,官网)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值