我希望在没有源和平台或架构独立的情况下这样做,如果可能的话不使用spec文件.
任何好友,请你建议任何解决方案或任何免费工具.
感谢所有花时间阅读和回复我的线程的人.
小智 14
您可以使用rpmrebuild修改实际的rpm文件(不需要安装).
大多数此示例使用复杂的内联编辑命令来以特定方式修改已知文件,但您可以使用普通编辑器.我用它来修复我没有源代码的rpm文件中的shell脚本.将命令调用为
rpmrebuild -ep theFileName.rpm
Run Code Online (Sandbox Code Playgroud)
这将使您在编辑器中使用RPM的spec文件.该文件的名称将是这样的~/.tmp/rpmrebuild.12839/work/spec.2.如果您查看,在此示例中~/.tmp/rpmrebuild.12839/work,您将找到用于生成RPM的所有文件(在我的情况下,文件root/usr/sbin位于该目录中).因此,转到另一个窗口,cd到该目录,并编辑您需要更改的任何文件.
完成编辑文件后,使用spec文件返回编辑窗口,对该文件进行所需的任何更改(我没有,因为我没有添加或删除文件),保存文件,以及对"你想继续"的问题说"y".然后它将构建一个新的RPM文件,并告诉你它放在哪里(在我的例子中,在〜/ rpmbuild/RPMS/x86_64 /)
原则上您可以将您想要的所有内容打包到 RPM 文件中。只需将您拥有的内容视为“源”并编写一个 SPEC 文件,该文件将数据放置在编译的二进制文件通常所在的位置。
关于 RPM,我认为“源”是“我拥有的”,“二进制”是“我需要运行的”。不是非常精确的术语,但它有助于使用 RPM。
您的规范文件看起来像任何其他规范文件,涉及参数等。但代码部分不同:
[...]
%prep
# Here you either have nothing to do or you already unpack the cpio and possibly modify it.
# %build can be omitted
%install
[ "${buildroot}" != "/" ] && [ -d ${buildroot} ] && rm -rf ${buildroot};
# Here you can either unpack the cpio or copy the data unpacked in %prep.
# Be careful to put it into %{buildroot} or $RPM_BUILD_ROOT.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14874 次 |
| 最近记录: |