标签: rpmbuild

创建RPM文件需要做的最小步骤是什么?

我只是想创建一个RPM文件来分发我的Linux二进制文件"foobar",只有几个依赖项.它有一个配置文件/etc/foobar.conf,应该安装在/ usr/bin/foobar中.

不幸的是,RPM文档长达 27章,我真的没有一天坐下来读这个,因为我也忙于为其他平台制作.deb和EXE安装程序.

创建RPM需要做的绝对最小值是多少?假设foobar二进制文件和foobar.conf位于当前工作目录中.

rpm rpmbuild

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

在构建RPM包之前自动安装构建依赖项

我正在尝试构建一个.rpm包.我刚刚按照步骤来做到这一点.到现在为止所有的步骤都很顺利,但现在我只是坚持这一步.我只是运行以下命令并得到此错误:

rpmbuild -ba asterisk.spec

error: Failed build dependencies: 
    gtk2-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
    libsrtp-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
    [... more ...]
    freetds-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
    uw-imap-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
Run Code Online (Sandbox Code Playgroud)

我正在使用fedora-15.如何解决此错误?

如何在安装src.rpm包时安装所有依赖项.可能吗?

fedora rpmbuild

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

从rpm包中提取spec文件

有没有办法从rpm包中提取spec文件(我只有RPM文件)

不是

   rpm --scripts -qp my-great-app-1.1.2.rpm 
Run Code Online (Sandbox Code Playgroud)

(这种语法只能从rpm获取spec脚本中的脚本)

linux rpm rpmbuild rpm-spec

37
推荐指数
6
解决办法
6万
查看次数

如何为每次调用设置rpmbuild的构建区域

我修改自动生成,并想告诉rpmbuild调用它,当使用特定生成区域.

这类似于现有问题,但更具体.

  • 我不想以root用户身份运行任何构建命令; 目的只是拥有一个RPM,而不是在系统中安装任何东西.

  • 我不想要求用户更改他们的dotfiles(例如$HOME/.rpmrc); 构建应该是自包含的,不会影响用户的现有设置.

  • 我不想将位置硬编码到foo.spec文件中; 如果用户想要在不同的位置构建,那么该文件应该可以使用.

  • --buildroot选项是不是我所需要; 为make构建过程的一部分设置伪根文件系统,但我需要为整个 RPM构建过程指定"构建区域" .

我正在寻找的是一个假设的--build-area FOODIR选项,可以给rpmbuild命令或等效的环境变量.因此,它应该仅影响该命令的单个调用,并使其对其构建区域使用指定的用户可写位置.

我已经看到了对_topdir宏的引用,这似乎就是我所说的,但它似乎不是每次调用都可配置的.

如果rpmbuild可以在需要时在该位置设置自己的环境,那将是理想的,但我不介意为每个构建设置目录,因为这可以作为构建的一部分自动化.目标是使用户可写位置仅在构建运行期间存在,然后在生成RPM文件后通过删除整个位置进行清理.

build-process packaging rpm rpmbuild

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

RPM spec文件 - 是否可以动态填充spec文件变量

我有一个spec文件.我需要定义一个spec变量,它从系统上的一行文件中获取其值.

例如

%define path `cat /home/user/path_file`
Run Code Online (Sandbox Code Playgroud)

并且在path_file中是一行

/var/www/html/hosts
Run Code Online (Sandbox Code Playgroud)

这部分有效.我说从RPM BUILD输出开始有时值${path}实际上是我的命令cat /home/user/path_file,有时值是path_file(/ var/www/html/hosts)中的行应该是什么?

rpm rpmbuild rpm-spec

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

RPM升级卸载RPM

我正在升级我们的项目RPM.问题是当我从projectname-1.0-0升级到projectname-1.0-1时,它首先安装新项目并卸载旧项目,从整体上看,它完全删除了我的项目.我在升级时使用了"vv"选项,输出显示安装完成后卸载.

有人请帮忙解决这个问题.有什么我应该在RPM规范或rpmbuild选项中专门更改?

specifications upgrade rpm rpmbuild

28
推荐指数
3
解决办法
2万
查看次数

如何让rpmbuild下载特定.spec的所有源代码?

我正在.spec通过URL 向现有rpm 文件添加一些源,但尚未下载它们.有没有办法rpmbuild下载源而不是手动执行?

rpm rpmbuild rpm-spec

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

在CentOS 5.5上没有定义rpmbuild%{dist}?

我正在尝试%{dist}在我的RPM规范文件中使用标记来提供Fedora Core(例如fc12),CentOS 5(例如el5)和亚马逊的Linux AMI 之间的特定于分发的依赖关系:

Release: %_svn_revision%{?dist}
Run Code Online (Sandbox Code Playgroud)

# Depencencies
%{?rhel:Requires: ...}
%{?fedora:Requires: ...}
Run Code Online (Sandbox Code Playgroud)

不幸的是,%{dist}似乎没有在CentOS 5.5中定义,并且我没有找到与CentOS 5.5匹配的特定于发行版的条件(我认为el5匹配,但似乎没有).这张票据报告了%{dist}2008年CentOS 的遗失,但自2009年以来一直没有更新.

我如何%{dist}在CentOS中定义以及我应该使用什么条件来匹配CentOS 5?任何RPM大师能指出我正确的方向吗?

centos5 rpm rpmbuild

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

如何将用户定义的参数传递给rpmbuild以填充变量

是否可以将参数传递给rpmbuild以填充在spec文件中调用的用户定义变量?

示例:在.spec文件中调用的用户定义变量%{foobar}(但为空)应填充执行rpmbuild命令时传递的变量

rpmbuild -bb --foobar="Foo" somespecfile.spec
Run Code Online (Sandbox Code Playgroud)

rpmbuild rpm-spec

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

rpmbuild更改压缩格式

我尝试在内部rpm包中为我们的地理服务器打包一些地图文件.对于构建部分,这只是复制文件.我认为这可以按预期工作.但要打包这些20GB的图像需要花费很长时间.

我已经读过rpm内部压缩数据,这可以通过几种不同的压缩算法来完成.但是,我不知道我的转速选择哪种压缩以及如何影响它.我找不到rpmbuild命令的任何选项,也没有为specfile找到任何选项,也没有找到我可以列出的常规rpm选项rpmbuild --showrc

我对rpmbuild和specfiles不是很有经验,但在阅读了很多关于rpm.org的手册和教程后,我没有进一步的想法.

我使用的specfile看起来像:

%define debug_package %{nil}

%global mapsversion 0.9
# If this is a snapshot, put the date here and uncomment
#global snapshot_version 20100519

# This is the version in a form acceptable
# an an RPM version string (i.e. no '-')
# Hier werden die Makros definiert.
%global rpmversion %(echo %{mapsversion} | tr '-' '_')
%global pkgversion %{mapsversion}%{?snapshot_version:-SNAPSHOT}
%global pkgname %{name}

Name:           geoserver-maps-part2
Version:        %{rpmversion}
Release:        1%{?dist}
Summary:        Swiss Maps for GeoServer
Group:          Application/ourApp
License:        Copyright …
Run Code Online (Sandbox Code Playgroud)

compression rpm rpmbuild rpm-spec

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