标签: rpm

Rpmbuild - 设置创建的.rpm的名称

我一直试图找出在rpm创建过程中设置固定文件名的最简单方法.它可以在.spec文件中设置或作为rpmbuild参数设置吗?默认名称取决于版本和版本号.我的rpm名称必须始终相同.

谢谢

同步

rpm rpmbuild

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

我如何比较python中的Rpm版本

我试图找出如何比较2个RPMS列表(当前已安装)和(在本地存储库中可用)并查看哪个RPMS已过期.我一直在修补正则表达式,但RPMS有很多不同的命名标准,我无法获得一个好的列表.我的驱动器上没有实际的RPMS,所以我不能做rpm -qif.

pattern1 = re.compile(r'^([a-zA-Z0-9_\-\+]*)-([a-zA-Z0-9_\.]*)-([a-zA-Z0-9_\.]*)\.(.*)')
for rpm in listOfRpms:
     packageInfo = pattern1.search(rpm[0]).groups()
     print packageInfo
Run Code Online (Sandbox Code Playgroud)

这适用于绝大多数但不是全部(2300/2400)

  yum-metadata-parser-1.1.2-2.el5
('yum-metadata-parser', '1.1.2', '2', 'el5') **What I need
Run Code Online (Sandbox Code Playgroud)

但是,除非我打破其他之前工作的其他人,否则这些都不起作用.

  • wvdial的-1.54.0-3
  • xdelta-1.1.3-20
  • xdelta-1.1.3-20_2
  • xmlsec1-1.2.6-3
  • xmlsec1-1.2.6-3_2
  • 则ypbind-1.17.2-13
  • 则ypbind-1.17.2-8
  • ypserv的-2.13-14
  • 拉链2.3-27
  • zlib的-1.2.3-3
  • zlib的-1.2.3-3_2
  • zsh的-4.2.6-1

python regex rpm

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

在规范步骤中以编程方式失败RPM安装

我正在制作RPM.此特定RPM的要求不能表示为RPM先决条件,我们可以将它们称为特定的文件系统/磁盘配置.目前,在安装后,在运行时,当不满足要求时,会发生故障.

我可以在我的脚本的%install部分中检查所需的先决条件.但是,如果满足某些条件,我无法弄清楚如何使安装失败.是否可以通过%install(或其他一些)部分中的某些触发器在运行时失败rpm安装?

在.spec文件中,示例看起来像这样:

%install
if [ -f /some/file ]
then
    FAIL_RPM_INSTALL ## What is this command?
fi
Run Code Online (Sandbox Code Playgroud)

fedora rpm

11
推荐指数
1
解决办法
8040
查看次数

为什么RPM更新后服务停止

我有一个软件包,我为其创建了一个RPM.由于IP原因,我无法粘贴整个RPM,但这里是问题的要点:

%pre
/sbin/pidof program
if [ "$?" -eq "0" ]
then
  /sbin/service program stop
fi

%post
/sbin/chkconfig program on
/sbin/service program start

%preun
/sbin/service program stop
/sbin/chkconfig program off

%postun
rm -rf /program_folder
Run Code Online (Sandbox Code Playgroud)

每次我尝试升级包时,它会停止程序服务,安装所有内容,启动服务,然后再次停止它并删除文件夹......任何想法?

redhat rpm

11
推荐指数
1
解决办法
5162
查看次数

在RPM环境中管理pip

对于我们的prod应用程序,我们以RPM为单位管理所有包.在一个完美的百胜世界,这很好.

但是,最近每种语言或框架都在部署自己的包管理器.例如,对于python,我几乎总是使用pip,然后在进入生产时再次为rpm构建包.同样适用于npm或宝石.

这是一个很多人遇到的问题吗?什么是避免这一切的最佳方法?人们是通过吮吸它并手动包装所有东西来处理这个问题,还是有一些自动化的方法来整合它们?

我很乐意听到这方面的想法.

python pip rpm yum package-managers

11
推荐指数
2
解决办法
6172
查看次数

RPM规范文件可以"包含"其他文件吗?

RPM规范中是否有一种"包含"指令?我用谷歌搜索找不到答案.

动机:我有一个RPM规范模板,构建过程使用版本,修订版和其他特定于构建的数据进行修改.这是sed目前完成的.我认为如果规范是#include一个特定于构建的定义文件会更清晰,这个定义文件将由构建过程生成,所以我不需要在规范中搜索和替换.

如果没有include,是否有一种惯用的方法来做这个(相当常见,我相信)任务?

linux scripting rpm rpm-spec

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

rpm在哪里查找依赖项?

我有一个使用rpmbuild构建的rpm.让我们说它是sample.rpm.它成功构建.rpm具有可执行文件(让我们称之为init).

当我尝试使用rpm -ivh sample.rpm它安装它时显示我失败的依赖项.

假设错误是Failed dependency for: example.so指rpm无法找到此共享对象文件.(即使so文件存在于同一目录中).

所以,我安装rpm rpm -ivh sample.rpm --nodeps(因为我知道我有所需的so文件).

为什么rpm无法安装那些rpms呢?它在哪里寻找目标文件?(linux加载器是否会查找这些.so).我有LD_LIBRARY_PATH来包含这些.so的路径,所以当我从rpm运行已安装的文件(init)时,它运行.

那么为什么rpm无法安装sample.rpm(它究竟在哪里寻找依赖项)?是否需要在构建rpm时指定某些内容?

dependencies rpm

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

如何让厨师检查RPM包然后安装?

我目前正在使用厨师来安装RPM JDK软件包,但问题是即使已经下载并安装了软件包,它也会每次都这样做.我尝试在安装之前找到一个检查选项,但没有任何选项.有没有办法解决这个问题,以便我可以跳过已安装的软件包?Debian的软件包管理默认跳过已安装的软件包,但RPM软件包管理器似乎没有这样做.

[Tue, 23 Oct 2012 10:34:32 -0500] INFO: Processing remote_file[/var/chef/cache/jdk-1.6-u30-linux-amd64.rpm] action create_if_missing (sun_java::default line 18)
[Tue, 23 Oct 2012 10:34:36 -0500] INFO: Processing package[jdk-1.6-u30-linux-amd64.rpm] action upgrade (sun_java::default line 25)
[Tue, 23 Oct 2012 10:37:15 -0500] INFO: Processing bash[update-alternatives java] action nothing (sun_java::default line 40)
Run Code Online (Sandbox Code Playgroud)

配方如下所示:

    urlVersion = "1."+node["sun_java"]["version"].sub(/[u]/, "-u")
    node.default["sun_java"]["rpm_url"] = "http://***/#{urlVersion}/jdk-#{urlVersion}-linux-#{node["sun_java"]["arch"]}.rpm"

    #Check that we are using the .rpm file because of the recent change
    if File.extname(File.basename(node["sun_java"]["rpm_url"]))!=".rpm"
      raise "You must use the jdk*.rpm file to install the Sun JDK. …
Run Code Online (Sandbox Code Playgroud)

rpm chef-infra

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

在Centos 6.4上安装MySQL 5.6的最佳方法

我刚刚安装了Centos 6.4,并使用Centos发行版附带的版本安装了MySQL.令我沮丧的是,MySQL 5.1.69与当前的5.6.12相比.如http://dev.mysql.com/doc/refman/5.5/en/linux-installation-native.html所述,"MySQL版本通常会落后于当前版本",但我没有期待那么久.

[root@centosBox ~]# rpm -qa | grep mysql
mysql-5.1.69-1.el6_4.x86_64
mysql-devel-5.1.69-1.el6_4.x86_64
mysql-server-5.1.69-1.el6_4.x86_64
mysql-libs-5.1.69-1.el6_4.x86_64
[root@centosBox ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@centosBox ~]# 
Run Code Online (Sandbox Code Playgroud)

另一种方法是根据http://dev.mysql.com/doc/refman/5.5/en/linux-installation-rpm.html安装RPM软件包,这是"推荐安装MySQL的方法" .我已经这样做了,并没有过于复杂,但是,我担心,因为我经常被告知我应该总是按照yum安装.在文档的最后,它确实描述了使用yum非常短暂地这样做,然而,它是如此简短,我怀疑它是否是要走的路.

那么......对于不是大师的Linux用户来说,在Centos机器上安装/升级MySQL的最佳方法是什么?

mysql linux centos rpm yum

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

rpm.spec文件中的多个tar(源文件)文件

我在linux上提出了一个集中式日志记录服务器.在这一点上,我正在努力巩固,使事情更容易加载到另一台机器上.我希望有一个RPM可以一次安装多个程序.我正在使用CentOS 7服务器.我想要打包到rpm的程序将是:

eventlog 2.12 
libdbi 0.9.0
freetds 0.91 
libdbi-drivers 0.9.0
json-c
syslog-ng 3.5.6
Run Code Online (Sandbox Code Playgroud)

我一直在做很多关于RPM的阅读,只是很难理解如何将多个源集成到一个RPM中.我安装这些的原因而不仅仅是yum安装它们是因为我需要在"./configure --enable-example"中调用配置.所以我有源在我的机器上安装了所有这些程序,然后我重新安装它们并尝试使用该文件作为源.任何能够指出我正确方向的想法或任何人都将不胜感激.

linux centos rpm centos7

10
推荐指数
1
解决办法
8620
查看次数