问题标签 [rpmbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rpm - 为什么 rpmbuild(1) 会忽略 RPM "spec" 文件中以 "Source:" 标记命名的压缩 tar(1) 文件?
该文件ldm.spec
包含该行
在它的第一部分。%{name} 和 %{version} 设置正确。给定的文件确实存在。
命令rpmbuild --nobuild ldm.spec
错误退出并显示消息
必须做些什么才能让它发挥作用?
附加信息:
unix - How to get automake, libtool, and rpmbuild to work together
I'm trying to create an RPM of my package, which is built using automake
and libtool
, and I've encountered a problem: rpmbuild
aborts upon discovering that the installed programs of the package contain the pathname of the installation directory for the package's sharable libraries (due to automake
's use of the -rpath
option of ld
).
I understand that rpmbuild
does this in order to guarantee that the package is relocatable. My question is what to do about it. I could eliminate the use of sharable libraries (and lose their benefits) or I could tell automake
to not install the sharable libraries (which would stop it from using the -rpath
option) and then install them anyway. The cost of this latter option is that it would require that the user always have a correctly-set LD_LIBRARY_PATH
environment variable -- plus it seems like a bit of a kludge.
Is there another option?
What would you do?
packaging - RPM 规范中同一文件的多个列表的问题
我对多次列出同一个文件的 rpm 规范文件有一些问题。对于这个规范,我们进行了一些正常的编译,然后我们有脚本将所有内容复制到 buildroot。在这个 buildroot 中,我们有很多通用脚本需要安装在最终系统上,所以我们只列出这个目录。
但是问题是,其中一个脚本可能会更改,并且脚本中的配置选项可能会更改。因此,我们将这个具有不同属性的脚本列为%config
. 然而,这意味着该脚本被多次定义且属性冲突,因此 rpmbuild 会报错并且在安装包中根本不包含该脚本。
有没有一种好的方法来处理这个问题并告诉 rpmbuild 只使用第二个定义,还是我们必须将脚本分成两部分,一个包含配置,一个包含实际逻辑?
linux - 如何在 RPM 规范文件中创建额外的 README %doc 文件?
创建规范文件时,当该文本文件不是原始源代码的一部分时,创建要由 RPM 安装的附加文本 doc 文件的正确程序是什么?
例如,如果当前 %doc 行包含源中的以下文件:
我希望规范文件创建一个 README_FOO ,它将写入同一个文档目录(其中包含特定于包的配置说明),这样做的正确方法是什么?
我知道我可以在规范文件的 %install 部分创建一个文本文件:
但我不确定在 $RPM_BUILD_ROOT 之后使用的正确路径,或者如何在现有的 %doc 行或新文件中引用新文件。
提前致谢。
linux - SPEC 文件构建两个 RPM,但依赖使 -Uvh 无法升级
我正在处理一个规范文件(foo.spec),该文件在构建时会产生两个 RPM:foo-1-1.i386.rpm(主程序)和libfoo-1-1.i386.rpm(所需的库文件)。foo.spec 文件指出 foo 需要相同版本和发行级别的 libfoo:
foo-1-1 安装得很好:
它安装依赖库,然后:
但是由于对库的依赖,升级到较新的版本(foo-2-1)不起作用:
所以我被困住了。我希望用户能够执行 rpm -Uvh 来升级 foo 包(要求他们忽略依赖项等,这对新手用户要求太多)。
关于如何解决这个问题的任何想法,以便在新版本可用时可以使用 rpm -Uvh 升级包的所有部分?
提前致谢。
linux - 如何动态定义子包
我的目标是提出一个动态定义子包的规范文件。
目前,我在规范文件中定义了一个宏,以便我可以使用不同的参数调用它来生成不同的 %package 部分。例如。
%define create_pkg(n:)\ %package -n subpackage-%1\ 摘要:子包 %1\ ...\ %{nil}
%create_pkg sub1 %create_pkg sub2 %create_pkg sub3
但是,我只能在 specfile 中硬编码 create_pkg 宏的参数(sub1、sub2、sub3)。有没有办法让规范文件读取一个单独的文件,其中包含我想要的子包的名称?例如。subpackages.txt 将具有以下内容:
子 1 子 2 子 3
并且规范文件将读取 subpackages.txt 并使用从 txt 文件中读取的名称调用 %create_pkg 。
linux - 我应该在规范文件的哪个位置添加操作系统,以便生成的 RPM 包含操作系统和拱门?
我正在几个不同的虚拟机(CentOS5 32 和 64、CentOS6 32 和 64、Fedora 等)上构建软件包。生成的 RPM 文件包含 name.version.release.arch.rpm,如下所示:
但相反,我希望它输出为:
在哪里(在规范文件中?.rpmmacros?),我该怎么做?
提前致谢。
rpmbuild - rpmbuild 失败:错误:找到已安装(但未打包)的文件:
不确定这是否是发布问题的正确位置。我正在尝试为我的项目创建 rpm,这是我第一次编写规范文件。当我使用命令构建规范时
rpmbuild -ba name.spec
请找到规范文件的链接 ( http://pastie.org/2426321 )。非常感谢您对此的任何帮助。提前致谢。
linux - RPM 构建在安装部分失败
我正在尝试构建我的第一个 rpm 包,它是一个简单的可执行文件 (mysh)。
我的规格文件:
它失败并出现以下错误:
当然这个文件在那里不存在。我试过复制它仍然有同样的错误。不确定我的安装部分是否应该将任何内容放入 BUILDROOT 文件夹。
我在 Ubuntu 11.04 上。