标签: rpm

给定rpm包名称,查询yum数据库以获取更新

我想象一个3行的Python脚本来做这个,但是yum Python API是不可穿透的.这甚至可能吗?

为'yum list package-name'编写包装器是唯一的方法吗?

python rpm yum

6
推荐指数
2
解决办法
5182
查看次数

在发行包中使用virtualenv部署Django?

我必须将一个Django应用程序部署到SuSE Linux Enterprise 11系统上.公司规则说我只需要使用RPM进行部署.虽然我可以使用./setup.py bdist_rpm每个依赖项,但它并不是真正理智,因为RPM还没有记录所有依赖项.因此,我没有使用RPM的真正优势,手动管理依赖项有点麻烦,我想避免它.

现在我有了以下想法:在构建软件包时,我可以创建一个virtualenv,通过pip那里安装所有依赖项,然后将其余的代码打包到一个固态RPM中.

这种方法有多明智?

deployment django pip rpm virtualenv

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

从Ubuntu到CentOs的bdist_rpm

我们在Ubuntu/Mac上开发并将RPM部署到CentOS(这是设置,不能改变太多).

问题是当从rpm安装时,包转到/usr/local/lib/python2.7/dist-packages(这是Ubuntu的正确位置).但是,CentOS中的默认python路径正在查看/usr/local/lib/python2.7/site-packages.

有没有办法告诉bdist_rpm在哪里安装文件?

python ubuntu centos rpm

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

尝试签署RPM时出错

我正在尝试构建并签署RPM.我在我正在构建的位置创建了我的.rpmmacro文件/ path/to/macrodir /然后我使用--define与_topdir引用/ path/to/macrodir /

如果我建立RPM而不给--sign; 它的工作正常.

rpmbuild --define "_topdir /path/to/macrodir" -bb spec
Run Code Online (Sandbox Code Playgroud)

.rpmmacro在macrodir中并包含

%_signature gpg
%_gpg_name Name (Comment) <emailid>
%_gpgpath pathtognupgfolder
%_gpgbin locationofgpgexec
Run Code Online (Sandbox Code Playgroud)

如果我包括--sign然后它抛出错误

rpmbuild --define "_topdir /path/to/macrodir" -bb --sign spec
Run Code Online (Sandbox Code Playgroud)

错误:您必须在宏文件中设置"%_gpg_name"

我无法看到我做错了什么.有什么建议?

signing rpm gnupg rpmbuild

6
推荐指数
2
解决办法
9338
查看次数

禁用rpmbuild自动要求查找

rpmbuild的默认行为似乎是扫描buildroot中的每个文件#!行并将这些解释器添加为硬性要求.是否可以禁用此功能?我遇到过这样一种情况:人们用#!/ path/to/local/install/of/something提交脚本,而且这个要求正在嵌入rpm中.

我无法找到抑制此行为的命令行或spec文件选项.希望我只是看起来不够努力.

packaging centos rpm rpmbuild

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

哪个yum组包含给定的包?

有没有办法问yum哪个组包含给定的包?我知道如何询问给定组中的包是什么,并且可以编写一个快速脚本来遍历所有组,但是拥有比这更简单的机制会更好.

redhat rpm yum

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

在构建RPM包时运送*.so和二进制文件

我已经创建了一个python应用程序,我想.so在最终的RPM包中发布一些二进制文件.经过长时间的阅读,我找到了一种方法来添加二进制文件/图像和其他数据文件setup.py.现在,当我使用python setup.py bdist_rpm命令构建RPM时,它抱怨架构依赖:

    Arch dependent binaries in noarch package
error: command 'rpmbuild' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

谷歌搜索后我发现我们可以添加:

#%define _binaries_in_noarch_packages_terminate_build 0
Run Code Online (Sandbox Code Playgroud)

或删除线BuildArch: noarch将在packagename.spec文件中,克服了rpmbuild故障.但是,每次我从build/bdist.linux-i686/rpm/SPECS/packagename.spec命令添加或删除行python setup.py bdist_rpm总是覆盖.spe文件.

有没有办法Arch dependent binaries在rpm中避免和发送*.so和其他二进制文件?

python rpm rpm-spec

6
推荐指数
2
解决办法
5193
查看次数

rpm scriptlet使用yum进行安装/删除/升级

我正在研究rpm scriptlets中的一个错误,这可能源于我们在安装/删除/升级软件包期间执行scriptlet的顺序.我们在Redhat Enterprise上使用yum.

显然我首先需要很好地理解rpm scriptlet的顺序 - 有趣的是,我没有在任何地方找到一个很好的总结.

根据我收集的内容,这是用于升级的scriptlet :

  • %pretrans 新包装
  • %pre 新包装 prein
  • 包安装
  • %post 新包装 postin
  • %preun 旧包装
  • 拆除旧包裹
  • %postun 旧包装
  • %posttrans 新包装

但是,它没有列出用于安装以前不在系统上的新软件包的scriptlet排序(即不是升级)和删除一个?从上面的排序中我可以猜出这些排序可能看起来如何,但我也希望得到一些有关这方面的教育意见......

rpm scriptlet

6
推荐指数
2
解决办法
5813
查看次数

如何从一个.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
查看次数

RPM spec缺少卸载部分?

我在RPM规范文档中看不到卸载部分.我确实看到了preun和postun.

  1. 是否有卸载阶段?
  2. 在卸载阶段到底发生了什么?基于%files部分,删除了一个文件列表?那就是它?

rpm rpm-spec

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