标签: rpm

安装Linux桌面快捷方式和图标

.spec在安装我的文件时,我需要添加到文件中以创建桌面快捷方式并为快捷方式指定图标.rpm?如果需要脚本,那么示例将非常有用.

linux rpm

6
推荐指数
1
解决办法
8643
查看次数

rpm -K报告丢失密钥

我正在使用rpm版本4.4.2.3-18.el5和gpg版本1.4-2的CentOS 5.4主机我使用命令签署了rpm

> rpm --define '_signature gpg' --define '_gpg_path /path/to/keys' --define '_gpg_name mygpgname' -K myrpm.rpm
Run Code Online (Sandbox Code Playgroud)

命令成功,重复该命令会发出一条警告消息,表明rpm已经使用密钥签名.

但是,当我尝试使用rpm -K验证签名时,它返回NOT OK(MISSING_KEYS)结果.

> rpm -K myrpm.rpm

> GNUPGHOME=/path/to/keys rpm --define '_signature gpg' --define '_gnupghome /path/to/keys' --define '_gpg_name mygpgname' -K myrpm.rpm
myrpm.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#12345678)
Run Code Online (Sandbox Code Playgroud)

我假设我正在以某种方式设置错误的路径.我也尝试过将GPGPATH =/path /设置为/ keys而没有运气.

有没有人有任何建议如何让rpm -K找到丢失的密钥?

rpm gnupg

6
推荐指数
1
解决办法
5665
查看次数

.war文件打包为JBOSS/Tomcat的RPM - 最佳实践?

我正计划将WAR文件打包为RPM.当前的部署过程对我们不起作用,我修复它的想法是在RHN Satellite中创建一个新的自定义频道,并通过该频道发布我的WAR文件.目前(因为我们试图赢得一些时间)我正在通过Satellite管理一些配置文件,因此配置不是一个大问题.我们不会因为很多原因将它们保留在WAR中,但这是不同的故事.

无论如何,有没有人将WAR打包为RPM?你做热部署还是强制JBOSS/Tomcat重启?是RPM安装后还是作为其一部分?您的SPEC文件是什么样的?我可以把它看作一个例子吗?您是否签入SPEC for JBOSS/Java/Oracle客户端或只安装WAR?有什么故事可讲吗?有什么大问题吗?我应该考虑别的吗?我可以构建RPM没问题但是我想听听使用WAR文件和JBOSS这样做的最好方法是什么(一些Tomcats仍在这里运行但是很快就会逐步淘汰 - 所以我不太担心它们).

我确实适合任何输入.

在此先感谢亲切的问候克里斯

jboss rpm war

6
推荐指数
1
解决办法
6758
查看次数

srpm spec文件中的问号和感叹号语法

我试图了解Postgres 9.1 rpms是如何在CentOS/RHEL 6上构建的,所以我要看一下源rpms中的spec文件.

以下语法是什么意思?具体来说,问号和感叹号?

%{!?test:%define test 1}
%{!?plpython:%define plpython 1}
%{!?pltcl:%define pltcl 1}
%{!?plperl:%define plperl 1}
%{!?ssl:%define ssl 1}
%{!?intdatetimes:%define intdatetimes 1}
%{!?kerberos:%define kerberos 1}
%{!?nls:%define nls 1}
%{!?xml:%define xml 1}
%{!?pam:%define pam 1}
%{!?disablepgfts:%define disablepgfts 0}
%{!?runselftest:%define runselftest 0}
%{!?uuid:%define uuid 1}
%{!?ldap:%define ldap 1
Run Code Online (Sandbox Code Playgroud)

我知道你可以定义一个宏变量%define <name>[(opts)] <value>,我相信感叹号是一个逻辑否定运算符.我找不到关于问号或上述例子的任何信息.在定义宏变量之前,似乎是某种测试.

是spec文件的粘贴.

specifications centos rpm rpm-spec

6
推荐指数
1
解决办法
1655
查看次数

使用Yum指定可重定位RPM的安装位置

我使用本网站上的说明创建了可重新定位的RPM:http: //www.cyberciti.biz/faq/rpm-relocatable-packages/

这意味着我可以使用将软件包安装到其默认位置/ opt/app

rpm -ivh mypackage.rpm
Run Code Online (Sandbox Code Playgroud)

但是,如果我决定将包安装到/ usr/local/bin中,我可以使用以下命令安装它:

rpm -ivh --prefix=/usr/local/bin mypackage.rpm
Run Code Online (Sandbox Code Playgroud)

所有这一切都很完美.但是,我需要通过Yum安装软件包.如何将--prefix参数传递给Yum?

centos rpm yum

6
推荐指数
1
解决办法
4474
查看次数

如何从一个.spec生成特定于平台和平台的RPM子包?

我有dunno.spec以下结构的文件:

Name:                   dunno
Vesion:                 1.0
...
BuildArch:              x86_64

%description
...
%package common
Summary:                Shared files
BuildArch:              noarch
Run Code Online (Sandbox Code Playgroud)

我想在运行后rpmbuild -ba dunno.spec我应该得到两个二进制包:

  • dunno-1.0.x86_64.rpm
  • dunno-common-1.0.noarch.rpm

但我得到:

  • dunno-1.0.x86_64.rpm
  • dunno-common-1.0.x86_64.rpm

如果我BuildArch: x86_64从规范中删除该行,那么我得到

  • dunno-1.0.noarch.rpm
  • dunno-common-1.0.noarch.rpm

如何解决?

RPM v4.4.2.3.

rpm rpmbuild

6
推荐指数
1
解决办法
6920
查看次数

Python 3.5使用pyinstaller生成的可执行文件创建.rpm

我有一个使用pyinstaller生成的构建.我需要创建.rpm包,它将把可执行文件放入/usr/bin/并创建一个运行该可执行文件的systemd服务.

我发现了这个 https://docs.python.org/3/distutils/builtdist.htmlhttps://docs.python.org/2.0/dist/creating-rpms.html

但它并没有给我一个完整的图片.

  1. 有可能成功吗?

  2. 我需要使用什么工具集?(基本上,how制作它).

  3. 如果可能 - 示例代码

python rpm pyinstaller rpmbuild python-3.x

6
推荐指数
1
解决办法
892
查看次数

如何在 RHEL 上为新的 Boost 版本构建/部署 RPM?

我在一个由 10 多名开发人员组成的团队中工作,我们将 RHEL 6.4 用于我们的开发机器和服务器(部署我们的软件)。

RHEL 6.4 带有 Boost 1.41,但我需要至少 1.47 的修复程序。我想升级到最新的(目前是 1.56)。

它不像下载源代码和构建/安装那么容易,因为:

  • 我希望我们团队中的每个人(包括未来的团队成员)都能轻松访问新的 Boost 版本。要求每个人都构建/安装很麻烦,并且可能会出现不一致的情况。
  • 我们的软件部署为 RPM,安装在数百台服务器上(这些服务器归其他团队所有,不受我们控制)。这些也运行 RHEL 6.4。我们的软件(大概)需要运行时链接到所有这些机器上的新 Boost 共享库。

更糟糕的是,RedHat 似乎有自己的专有方式将 Boost 软件/库捆绑/打包到 RPM 中。他们不是只有一个 RPM,而是一系列较小的 RPM:

$ yum list installed|grep boost
boost.x86_64                          1.41.0-11.el6_1.2           @Workstation  
boost-date-time.x86_64                1.41.0-11.el6_1.2           @Workstation  
boost-devel.x86_64                    1.41.0-11.el6_1.2           @Workstation  
boost-filesystem.x86_64               1.41.0-11.el6_1.2           @Workstation  
boost-graph.x86_64                    1.41.0-11.el6_1.2           @Workstation  
boost-iostreams.x86_64                1.41.0-11.el6_1.2           @Workstation  
boost-program-options.x86_64          1.41.0-11.el6_1.2           @Workstation  
boost-python.x86_64                   1.41.0-11.el6_1.2           @Workstation  
boost-regex.x86_64                    1.41.0-11.el6_1.2           @Workstation  
boost-serialization.x86_64            1.41.0-11.el6_1.2           @Workstation  
boost-signals.x86_64                  1.41.0-11.el6_1.2           @Workstation  
boost-system.x86_64                   1.41.0-11.el6_1.2           @Workstation  
boost-test.x86_64                     1.41.0-11.el6_1.2           @Workstation  
boost-thread.x86_64                   1.41.0-11.el6_1.2           @Workstation  
boost-wave.x86_64 …
Run Code Online (Sandbox Code Playgroud)

c++ linux boost rpm rhel

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

如何将 .tar.gz 文件打包成 rpm 包


我在 Redhat Linux 上工作过,我有一个 tar.gz 文件。我想把这个 tar.gz 文件打包成一个 rpm 包文件。
在rpm包阶段,我只是想解压tar.gz文件,把所有的人员打包到rpm包中,当我在linux服务器上安装rpm包时,它只会简单地将所有文件复制到目标文件夹中.
我已经尝试了很多。这是我的 SPEC 文件的一些代码,但它有问题:

%prep

%build
pwd

%install

rm -rf /usr/local/sample
mkdir /usr/local/sample
cd %{_sourcedir}
tar -xzvf sample.tar.gz -C /usr/local/sample

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc

%changelog
Run Code Online (Sandbox Code Playgroud)

我可以成功打包rpm文件,但是rpm包中没有tar.gz文件的内容。
如果我在其他服务器上安装 rpm 文件,它将失败。
我该如何解决这个问题?

rpm rpmbuild rpm-spec

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

python bdist_rpm 不使用 install_requires?

我创建了一个新的 RPM 使用python bdist_rpm. 通常python setup.py install会安装 python 依赖项websocket-client或任何其他包。但是 RPM 只是拒绝安装任何东西。

显然,来自其他各种帖子的建议似乎只是要求在 setup.cfg 中将它们作为 rpm 包。这对我来说没有意义,因为大多数 rpm 包似乎都是旧版本,我不可能为我需要的所有 python 包创建 rpm。我需要一个更新的版本,yum 安装实际上没有安装软件包是没有意义的。

什么是正确的(干净和最简单的)方法?我相信如果 asetup.py有类似的东西

install_requires=[
    "validictory",
    "requests",
    "netlogger>=4.3.0",
    "netifaces",
    "pyzmq",
    "psutil",
    "docopt"
],
Run Code Online (Sandbox Code Playgroud)

然后它应该尝试将它们包含在 rpm 中或尝试安装它。我正在使用 vagrant 尝试一个干净的 centos vm,我一直在破坏它,然后安装 rpm。

python distutils rpm setuptools

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