标签: rpm

rpm构建错误

我试图构建一个rpm包,它给了我以下错误

  • /usr/lib/rpm/find-debuginfo.sh/usr/src/redhat/BUILD/RPMS find:invalid predicate`'错误:/var/tmp/rpm-tmp.86590(%install)的退出状态不好是原因.任何人都可以帮助我...谢谢

build rpm

5
推荐指数
2
解决办法
5096
查看次数

有没有办法以编程方式获取已安装RPM的签名密钥ID?

如显示rpm -qi package

我真的不想解析输出rpm -qi.我更愿意使用rpm -q --qf,我可以控制格式,并且不会受到未来版本的美学异想天开.

但是我在手册页中找到的唯一有用的标签是SIGPGP,它为我提供了整个签名,而不仅仅是短密钥ID.看到不同:

$ rpm -qi coreutils
Name        : coreutils                    Relocations: (not relocatable)
Version     : 8.4                               Vendor: Fedora Project
Release     : 8.fc13                        Build Date: Tue 20 Jul 2010 05:21:15 AM BRT
Install Date: Tue 03 Aug 2010 01:58:53 PM BRT      Build Host: x86-17.phx2.fedoraproject.org
Group       : System Environment/Base       Source RPM: coreutils-8.4-8.fc13.src.rpm
Size        : 12659257                         License: GPLv3+
Signature   : RSA/SHA256, Tue 20 Jul 2010 03:14:09 PM BRT, Key ID 7edc6ad6e8e40fde
Packager …
Run Code Online (Sandbox Code Playgroud)

linux rpm gnupg pgp digital-signature

5
推荐指数
1
解决办法
1852
查看次数

如何防止在RedHat系统上安装SUSE RPM

我们有一个通过RPM分发的产品.我们创建了SUSE SLES10 SP1 RPM和RedHat 5.5 RPM.两者之间存在差异,如果在RedHat机器上安装SUSE RPM,反之亦然,事情将无法正常工作(通常是神秘的).

有没有办法阻止RedHay RPM安装在SUSE系统上,反之亦然?我搜索了这个并找到了http://www.rpm.org/max-rpm/ch-rpm-multi.html,但这里的所有约束似乎都是基于命令的输出uname而不是告诉你是否你正在运行RedHat或Suse.操作系统是Linux,架构是一样的.

我们有想法在安装脚本中添加检查,可以在/ etc/issue文件中查找"Red Hat"或"SUSE",但我真的希望有比这更好的选项.

linux rpm rpmbuild

5
推荐指数
1
解决办法
536
查看次数

如何在java中阅读RPM的内容

我正在寻找一种在java运行时读取RPM内容的方法.

有人建议使用7zip在运行时解压缩和/或提取RPM,使用7zip的系统命令.

该解决方案有两个缺点:

  1. 它取决于平台(因为命令将特定于一个OS)
  2. 它涉及第三方软件.

有任何想法吗?

编辑:
我正试着走下罗伯特的道路.这是我的代码:

String file = "MyRpm.rpm";

CpioArchiveInputStream cpioIn = 
       new CpioArchiveInputStream( new FileInputStream(new File(file)) );
 CpioArchiveEntry cpioEntry;



while ((cpioEntry = cpioIn.getNextEntry()) != null)
{
    System.out.println(cpioEntry.getName());
    int tmp;
    StringBuffer buf = new StringBuffer();
    while ((tmp = cpioIn.read()) != -1)
    {
        buf.append((char) tmp);
    }
    System.out.println(buf.toString());
}
cpioIn.close();
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:( java.io.IOException: Unknown magic [????有趣的字符来自原始的错误消息).

java rpm

5
推荐指数
1
解决办法
1202
查看次数

百胜安装自制RPM给出错误

我试图使用"yum install my.rpm"来解决问题.

问题是我得到了

TypeError: an integer is required
error: python callback <bound method RPMTransaction.callback of <yum.rpmtrans.RPMTransaction instance at 0x013e3f8>> failed, aborting!
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我打开了yum install的冗长,无法解决任何问题.这是RHEL 6.1

谢谢

linux redhat rpm rhel yum

5
推荐指数
2
解决办法
2314
查看次数

将spec文件转换为debian

我们正在将我们的服务器从CentOS迁移到ubuntu.对于自编写的应用程序,我们创建了一个spec文件来创建RPM,以便在CentOS上轻松安装.现在我们想将它转换为debian格式.最简单的方法是什么?我不是指从rpm创建.deb文件,而是将spec文件转换为ubuntu控制文件.

ubuntu specifications centos rpm deb

5
推荐指数
1
解决办法
4647
查看次数

maven-rpm-plugin和rpm-maven-plugin有什么区别

我看到两个在线的引用,但无法找出原因.有区别吗?如果是这样,怎么样?

rpm maven rpm-maven-plugin

5
推荐指数
1
解决办法
1370
查看次数

什么是好的RPM构建工具?

我负责构建多个RPM.我为每个RPM包提供了pristine SPEC文件,我有BASH脚本,它们设置了必要的环境并构建了RPM.

我想使用实际的构建工具(如make)来构建这些RPM.通过这样做,我希望消除对自定义,混淆BASH脚本的需求,转而使用清晰,可维护的配置文件(类似于make的Makefile).但是,使用POSIX制作和保持make文件集是最新的可能与维护我目前用于构建RPM包的BASH脚本一样多.像cmake和automake这样的程序包含make命令的功能是有原因的 - 这些工具更具表现力,允许更小,更清晰的配置文件.

但是,使用autoconf/automake似乎也是一个糟糕的选择,因为它们似乎专门为C和C++开发而构建.有人建议我使用scons,但是这似乎是最好的选择(由于它的配置文件是实际的python脚本),它也适用于特定的语言.

使用我的SPEC文件作为"源代码"和环境作为"依赖项"(例如设置制作RPM所需的rpmbuild目录树结构),是否有一个很好的构建工具可以用来替换我的BASH脚本以获得更清洁,更多可维护的RPM构建解决方案?

编辑:当我说"构建工具"时,我似乎不清楚我需要什么.我已经使用rpmbuild作为'编译器',我使用SPEC文件(以及二进制文件的相关源代码)'编译'RPMs作为'源代码'.我要求一个可以协调这个过程的工具.

makefile build rpm scons

5
推荐指数
1
解决办法
6653
查看次数

rpm -i表示已安装,但rpm -e表示未安装

我正在尝试测试我在CentOS上为Jmeter编写的RPM.我在线跟踪了一些指南,当我做'sudo rpm --install jmeter.i386.rpm'时,它说已经安装了包.但是,当我做'sudo rpm --erase jmeter.i386.rpm'时,它表示没有安装包.我该如何解决这个问题?

centos rpm jmeter

5
推荐指数
1
解决办法
5785
查看次数

如何安装较旧的ansible包?

我需要安装ansible 2.1.0.0-1.el7.我的安装程序不适用于我安装的最新版本的ansible:

yum -y --enablerepo=epel install ansible
Run Code Online (Sandbox Code Playgroud)

这给了我ansible-2.2.0.0-3.el7.noarch.所以我试着列出旧版本,但我找不到它们:

# yum -y --enablerepo=epel --showduplicates list ansible
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror2.hs-esslingen.de
 * epel: epel.mirrors.ovh.net
 * extras: it.centos.contactlab.it
 * updates: mirror.netcologne.de
Available Packages
ansible.noarch                    2.2.0.0-3.el7                                epel
Run Code Online (Sandbox Code Playgroud)

这是我发现多个版本的网站,但我不知道如何安装它.

有人可以帮我安装我需要的Ansible版本吗?

rpm yum ansible

5
推荐指数
1
解决办法
1万
查看次数