标签: rpm

如何通过RPM分发Python/Django App

我已经阅读了这个问题,我认为这是一个很好的开始,但我正在寻找更多的洞察力.

我使用Python 2.6和Django 1.2.1编写了一个应用程序.我想在没有安装Python 2.6或Django的系统上部署此应用程序.系统本身并没有安装很多东西 - sqlite3,pysqlite2,gcc等.但系统确实有Python 2.4.3.

什么是创建Python 2.6,Django和我的应用程序本身(一个标准的Django应用程序)的RPM最理智的方式,以便每个可以单独安装,以允许升级不同的组件?

我不太了解创建源RPM,但我怀疑这是可用的信息.如果有任何特别好的资源来创建源RPM,我也会很感激.

如果重要,系统是ESX 4 Update 1.

谢谢!

更新: 我从未想过,分发Python鸡蛋甚至使用setup.py是内容分发的可行解决方案.我也有兴趣听到这个消息.

python django esx rpm

7
推荐指数
2
解决办法
6518
查看次数

我可以从.spec脚本部分中删除RPM吗?

我正在构建一个现有的.spec/rpm的新版本,我想删除它所不需要的依赖项(之前的.spec有"Requires:rpm-xyz").

所以除了删除Requires:rpm-xyz之外,我在.spec文件的"%post"部分添加了以下内容:

rpm -e rpm-xyz.

当我用yum安装生成的rpm时,在下载它并向我询问已处理的确认后,我得到了这一行并且它永远停留在那里:

警告:等待/var/lib/rpm/__db.000上的事务锁定

所以它看起来像是一个死锁(yum调用rpm,然后从内部调用rpm).所以我在/ var/lib/rpm中有__db.oox文件,我需要重建rom数据库以删除它们.

所以问题是:我允许从spec文件中调用rpm命令吗?我已经阅读了Obsolete标签,但它没有删除rpm.删除rpm的最佳方法是什么?

谢谢,

-Martin

PS额外信息:是的,我需要删除旧的依赖项,不,没有其他rpm依赖它.

specifications rpm yum

7
推荐指数
1
解决办法
7102
查看次数

如何使用RPM分发内核模块?

使用RPM分发内核模块的推荐方法是什么?理想情况下,为了便于移植,我希望RPM能够在安装之前针对正在运行的内核的头部构建模块.

linux rpm package linux-kernel

7
推荐指数
1
解决办法
1251
查看次数

如何在RPM spec文件中运行shell命令?

如何在spec文件中运行shell命令?我想执行类似的东西:

uname -r | sed s/(...stuff...)/(...stuff...)
Run Code Online (Sandbox Code Playgroud)

rpm rpm-spec

7
推荐指数
1
解决办法
7650
查看次数

重命名munin包时问题与postun脚本有关

我有两个问题,我想找到一个解决方案:

我重命名穆宁2.0封装,为RPM的SPEC文件我已经过时了原来的穆宁包.

当更换现有的1.x穆宁包作为穆宁节点的postun小脚本的一部分它移除穆宁用户.

postuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ]; then
    /usr/sbin/userdel munin || logger -t munin/rpm "User \"munin\" could not be deleted."
#       /usr/sbin/groupdel munin || logger -t munin/rpm "Group \"munin\" could not be deleted."
fi
Run Code Online (Sandbox Code Playgroud)

当我替换现有的munin 2.0软件包时,postun会删除plugins目录的内容.

postuninstall scriptlet (using /bin/sh):
if [ "$1" = "0" ]; then
   [ -d /etc/munin/plugins ] && \
find /etc/munin/plugins/ -maxdepth 1 -type l -print0 | \
   xargs -0 rm || :
fi
Run Code Online (Sandbox Code Playgroud)

由于yum安装了新软件包,然后运行旧软件包的帖子,$1 = 0在这两种情况下,它将在我的rpms安装完成后运行脚本.有办法解决这个问题吗?

rpm yum rpmbuild munin

7
推荐指数
1
解决办法
168
查看次数

从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
查看次数

禁用rpmbuild自动要求查找

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

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

packaging centos rpm rpmbuild

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

Nexus/Artifactory可以缓存RPM和NPM吗?

我们正在评估Nexus vs Artifactory作为工件存储解决方案.他们可以很好地缓存远程Maven存储库.他们中的任何一个都可以缓存RPM包和NPM模块吗?

rpm repository nexus artifactory npm

6
推荐指数
3
解决办法
7213
查看次数

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
查看次数

RPM spec缺少卸载部分?

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

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

rpm rpm-spec

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