有两台机器,SLES 的相同版本/架构。
在机器#A 上安装了一个“foo”软件,我们可以使用rpm -qa
.
在机器#B 上需要安装“foo”软件。
在foo.rpm
从任何来源无法使用,从互联网等
由于该软件包foo.rpm
已安装在机器 #A 上,我们能否foo.rpm
从已安装的文件在其上构建文件?
我认为 rpm 中也有前/后脚本。那么foo.rpm
(有依赖关系?)就可以安装了。
slm*_*slm 12
这样做是可能的,但非常困难,以便正确完成。如果您感到绝望,您可以创建一个新的 RPM.spec
文件并构建一个“假”源 RPM (SRPM) 文件,然后您可以使用该文件构建一个使用rpmbuild --rebuild
.
我会继续寻找实际的 RPM。你没有在你的问题中说明哪个,但根据我的经验,如果你知道如何搜索,你可以在互联网上找到任何东西。我发现 Red Hat 发行版的 RPM 的旧版本已经 10 多年没有使用了,所以我很难相信在任何地方都没有这种 RPM 的残余。
此外,您经常可以回到包含在 RPM 中的应用程序的源代码,并使用它来重建 RPM。通常,源应用程序会包含一个必要的.spec
文件,用于重建 RPM。
最后,您可以.spec
从基于 Red Hat 的发行版的 Koji 等构建服务中获取源代码和文件。SuSE 也维护类似的构建服务,因此您可以搜索这些服务以获取旧的构建工件。
您可以使用此方法从一个系统中提取实际的可执行文件,并将它们打包以在另一个系统上进行部署。
机器A
$ rpm -ql <packageNameHere> | xargs tar -zcvf /tmp/program.tgz
Run Code Online (Sandbox Code Playgroud)
机器B
$ tar -zxvf /path/to/your/program.tgz
Run Code Online (Sandbox Code Playgroud)
根据此线程中的一个帖子:Re: How to create RPM fron install packages rpm
on SLES is purported to have the switch --repackage
。这在 Red Hat 版本(在 Fedora 或 CentOS 中)不存在。但是根据帖子,您可以像这样使用它:
$ rpm -e --repackage <somepackage>
Run Code Online (Sandbox Code Playgroud)
完成后,您将在此处找到您的 RPM:
/var/spool/repackage
Run Code Online (Sandbox Code Playgroud)
Rpmerizor是一个 3rd 方工具/脚本,您可以安装它,它将源文件重新打包到相应的 RPM 中。此脚本的用法可在此处访问,标题为:rpmerizor 的手册页。
摘抄
Rpmerizor 是一个脚本,允许您从已安装的文件创建 RPM 包。您只需在命令行上指定文件并回答一些交互式问题即可填充 rpm 元数据(包名称、版本...)。您还可以在批处理模式下使用元数据的命令行选项。
不要与构建工具混淆rpmbuild
,rpmrebuild
是另一个 3rd 方脚本,您可以使用它对已安装的 RPM 进行重新打包。
摘抄
rpmrebuild 是一个工具,可以从基本使用中已经安装的包中构建 RPM 文件,rpmrebuild 的使用不需要任何 rpm 构建知识。(在 debian 上,等效产品是 dpkg-repack)。
假设我们要重新打包 openssh-server。
$ rpm -aq | grep openssh-server
openssh-server-6.2p2-8.fc19.x86_64
Run Code Online (Sandbox Code Playgroud)
现在打包:
$ rpmrebuild openssh-server-6.2p2-8.fc19.x86_64
/usr/lib/rpmrebuild/rpmrebuild.sh: WARNING: some files have been modified:
..?...... c /etc/ssh/sshd_config
..?...... c /etc/sysconfig/sshd
Do you want to continue ? (y/N) y
Do you want to change release number ? (y/N) n
result: /root/rpmbuild/RPMS/x86_64/openssh-server-6.2p2-8.fc19.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37193 次 |
最近记录: |