I'm currently trying to create an RPM from a tarball that uses a proprietary binary installer to dump a bunch of files in the filesystem. This installer does not let me dictate where the files go (so I can't just dump them into a build folder). What I want to know is what would be the best way to reliably package the files?
我目前正在尝试从一个tarball中创建RPM,这个tarball使用一个专有的二进制安装程序在文件系统中转储一堆文件。这个安装程序不允许我指定文件的位置(因此我不能将它们转储到构建文件夹中)。我想知道的是,可靠地打包文件的最好方法是什么?
2 个解决方案
#1
3
There is a utility called checkinstall that basically does this, but believe it's Makefile-specific.
有一个叫做checkinstall的实用程序基本上就是这样做的,但是相信它是特定于makefile的。
However, digging a little deeper you'll find a library called installwatch. Though a little old, this can be used to wrap system calls, and hopefully tell you what is being installed where.
然而,再深入一点,您将发现一个名为installwatch的库。虽然有点旧,但它可以用来包装系统调用,并希望告诉您在哪里安装了什么。
Your end result will not be an rpm, per se, but this should give you enough information to construct an rpmbuild(8) spec file.
您的最终结果本身不会是rpm,但是这应该会给您足够的信息来构建rpmbuild(8) spec文件。
Hope this helps :)
希望这有助于:)
#2
0
You can have the installer run in %post
. One of many problems with that is that the RPM database won't know of any of the files you installed behind its back. But I've seen that done, especially with drivers so they don't need to release a version for each and every kernel out there.
可以在%post中运行安装程序。其中一个问题是RPM数据库不知道您在背后安装的任何文件。但是我已经看到了这一点,特别是在驱动程序中,所以它们不需要为每个内核发布版本。
#1
3
There is a utility called checkinstall that basically does this, but believe it's Makefile-specific.
有一个叫做checkinstall的实用程序基本上就是这样做的,但是相信它是特定于makefile的。
However, digging a little deeper you'll find a library called installwatch. Though a little old, this can be used to wrap system calls, and hopefully tell you what is being installed where.
然而,再深入一点,您将发现一个名为installwatch的库。虽然有点旧,但它可以用来包装系统调用,并希望告诉您在哪里安装了什么。
Your end result will not be an rpm, per se, but this should give you enough information to construct an rpmbuild(8) spec file.
您的最终结果本身不会是rpm,但是这应该会给您足够的信息来构建rpmbuild(8) spec文件。
Hope this helps :)
希望这有助于:)
#2
0
You can have the installer run in %post
. One of many problems with that is that the RPM database won't know of any of the files you installed behind its back. But I've seen that done, especially with drivers so they don't need to release a version for each and every kernel out there.
可以在%post中运行安装程序。其中一个问题是RPM数据库不知道您在背后安装的任何文件。但是我已经看到了这一点,特别是在驱动程序中,所以它们不需要为每个内核发布版本。