Articles of rpm

检查RPM依赖关系

在Ubuntu上使用.deb软件包安装编程时,可以使用Ubuntu软件包search来检查软件包的依赖关系。 例如,我可以从这里看到Wireshark的依赖关系。 正如你所看到的,由红色子弹标记的依赖关系。 如果你知道所有的程序包依赖于你,你可以下载它们并安装dpkg 。 有没有其他的RPM软件包的网站? 特别针对RHEL? 我知道我可以通过其他方法获得这些软件包的名字,比如使用rpm -i安装RPM软件包,但是这不是用户友好的,需要访问运行linux。

多结构二进制rpm和noarch

我有两个(32位和64位)版本的编译软件,我想打包成一个二进制RPM。 我想知道“noarch” 目标是否适合这个目的,还是有更好的select? 我看到的唯一一个'noarch'的问题是,在程序包中包含i386和x86_64二进制文件并不会使其与架构无关,而'noarch'应该被用于。

有没有一个Maven插件来获取转速

作为我目前的程序的一部分,我必须做一个Linux包提取,然后是一个Maven构build。 有没有一个Maven插件来获取Linux软件包( rpm -i xxx或apt-get install xxx )? maven-exec-plugin启用了这个function。 但有没有一个更专门的插件,将数据封装在上面? 注意: – maven-rpm-plugin和maven-apt-plugin似乎允许你创buildrpm包,而不是去获取它们

文件在rpm spec文件中列出两次

我的spec文件的文件部分如下所示: %files %{prefix}/htdocs/ %config %{prefix}/htdocs/share/settings/config.inc.php 现在,由于configuration文件已经包含在%{prefix}/htdocs/行中,所以我得到了警告'File listed twice'。 其中一种方法是列出%{prefix}/htdocs/中除configuration文件以外的每个文件。 但我的问题是:是否有更好的解决此问题的方法,比列出所有文件?

可以在RPM spec文件中“包含”其他文件吗?

在RPM规范中是否有一种“包含”指令? 我无法通过Googlesearchfind答案。 动机 :我有一个RPM规范模板,构build过程使用版本,修订版本和其他特定于构build的数据进行修改。 这是目前由sed完成的。 我认为如果规范将包含特定于构build的定义文件(这将由构build过程生成),那么将会更清洁,因此我不需要在规范中进行search和replace。 如果没有include ,有没有一种习惯的方式来做到这一点(相当普遍,我相信)的任务?

LSB中是否有RPM文件命名约定?

RPM是LSB中的包格式,但LSB强制任何类似于RPM的命名标准: http://www.rpm.org/max-rpm/ch-rpm-file-format.html

在RPM spec文件中使用Jenkins BUILD NUMBER

Name: My Software Version: 1.0.5 Release: 1 Summary: This is my software 不知道是否有人曾经尝试过,或者是否容易,但是: 一个spec文件有两个独特的指标: 版本(指定软件版本) Release(它指定包的编号 – 如果你build立一个RPM,它被打破了,build立另一个,你释放“Release”号码。 我想知道如果有人尝试过,或者知道如何,我可以使用Jenkins $ BUILD_NUMBERvariables来dynamic更改Release号,从而每当新的成功构build完成时就增加Release号。

什么是$ RPM_BUILD_ROOT?

在构buildRPM包的过程中,我必须指定BuildRoot,稍后将在%install中使用,其中调用$ RPM_BUILD_ROOT。 我一直认为$ RPM_BUILD_ROOT是RPM执行打包的假安装。 然后,在安装时使用RPM包,它会安装到实际位置。 例如: $RPM_BUILD_ROOT/usr/bin 我认为$ RPM_BUILD_ROOT仅用于打包过程,在某些方面,当用户执行“rpm -ivh package.rpm”时,RPM可以区分$ RPM_BUILD_ROOT和实际的安装位置是/ usr / bin。 但是最近在阅读一些文档时,build议$ RPM_BUILD_ROOT是要安装的实际位置,而$ RPM_BUILD_ROOT是由用户通过设置环境variables$ RPM_BUILD_ROOT来指定的,以便让用户安装它们的包位置。 否则,$ RPM_BUILD_ROOT将为空,并将安装到默认位置。 在上面的情况下,它是/ usr / bin。 因此,$ RPM_BUILD_ROOT不仅仅是用于打包或“假安装”的过程,而是用户定义安装位置的一种方式,类似于在Windows中select文件夹的位置。 我不知道我的想法是否正确。 有人可以validation吗? 提前致谢。

创buildPython RPM

我一直在阅读为Python 2.6.4创build一个RPM。 在这个页面中: http : python setup.py bdist_rpm它说你可以使用python setup.py bdist_rpm创build当前Python的RPM。 我的问题是: 你必须在你的Python安装目录中input这个命令吗? 这个命令是否将所有已安装到RPM中的模块打包? 这是正确的命令吗? 有没有其他的build议可以让这个更简单? 好的,我使用checkinstall对此进行了整理。 我从http://www.asic-linux.com.mx/~izto/checkinstall/下载了checkinstall 。 然后我安装了软件包,但必须在/usr/local/sbin/checkinstall PATH中input/usr/local/sbin/checkinstall才能使其正常工作。 然后,我进入下一个copmmand让我的RPM目录。 yum install rpm-build 然后我进入Python模块并input这个命令: checkinstall -R –nodoc –delspec=no –exclude=/selinux python2.6 ./setup.py install 这个命令将checkinstall命令replace成安装python库,而不是通过make.py。 然后我通过checkinstall过程。 完成的RPM放在/usr/src/redhat/RPMS/i386/ 。 注意:这是LINUX RED HAT。

RPM – 安装时间参数

我已经将我的应用程序打包到一个RPM包中,比如myapp.rpm 。 在安装这个应用程序的时候,我想接收用户的一些input(input的一个例子可能是应用程序正在安装的环境 – “dev”,“qa”,“uat”,“prod”)。 基于input,应用程序将安装适当的文件。 有没有办法在安装应用程序时传递参数? PS:一个可能的解决scheme可能是为每个环境创build一个RPM软件包。 但是,在我们的情况下,这不是一个可行的select,因为我们有大约20个环境,我们不希望为同一个应用程序有20个不同的包。