jon*_*jon 37 linux rpm rpmbuild rpm-spec
有没有办法从rpm包中提取spec文件(我只有RPM文件)
不是
rpm --scripts -qp my-great-app-1.1.2.rpm
Run Code Online (Sandbox Code Playgroud)
(这种语法只能从rpm获取spec脚本中的脚本)
rei*_*art 24
安装rpmrebuild并解压缩rpm 文件或已安装的软件包的spec文件.
例子:
rpmrebuild --package --notest-install -e oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
rpmrebuild -s hercules.spec hercules
Run Code Online (Sandbox Code Playgroud)
dan*_*uer 15
spec文件不存储在二进制rpms中,除非打包器由于某种原因明确包含它(并且实际上没有理由这样做).您可以从二进制rpm获得的唯一信息是rpm -qi <package>返回的信息以及rpm -ql <package>列出的文件.如果您需要更多,则必须找到源包.如果Google /供应商的网站未能为您提供,则应在Packager字段中提供联系信息,以供任何主管人员打包.例如,这是RHEL附带的软件包和第三方供应商提供的软件包:
$ rpm --qf '%{Packager}\n' -q redhat-release
Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
$ rpm --qf '%{Packager}\n' -q cfengine-community
CFEngine AS (packager@cfengine.com)
Run Code Online (Sandbox Code Playgroud)
你有一个网站和一个电子邮件地址,你可以在那里询问spec文件或srpm文件.
你可以用
yumdownloader --source < something.rpm
Run Code Online (Sandbox Code Playgroud)
然后:
rpm2cpio packagename | cpio -ivd
Run Code Online (Sandbox Code Playgroud)
根据@ RumpleStiltskin的回答,原始的spec文件可以在源rpms中找到,可以提取.要获取源rpms,请运行以下命令:
yum install yum-utils # Only required if yumdownloader is not installed
yumdownloader --source <package name, like 'emacs-nox'>
Run Code Online (Sandbox Code Playgroud)
这会将程序包安装到当前目录.提取它运行:
rpm2cpio <package name>.src.rpm | cpio -civ '*.spec'
Run Code Online (Sandbox Code Playgroud)
该.spec文件将位于当前目录中.
如果由于某种原因无法安装yum-utils,请查看文件/etc/yum.repos.d/并查找引用源rpm存储库的部分.您可以在baseurl浏览器中键入值并手动搜索源包.提取.spec仍然需要rpm2cpio.
小智 5
rpmrebuild是你的朋友.使用
rpmrebuild -e -p <rpm_file>
Run Code Online (Sandbox Code Playgroud)
当它在编辑器中打开spec文件时,您也可以更改rpm规范.
| 归档时间: |
|
| 查看次数: |
57841 次 |
| 最近记录: |