我知道在关于Moblin和Maemo合并的各种论坛和新闻组中,关于这个主题有很多模糊.我想知道stackoverflow-fellows对此的看法.RPM包装比DEB有什么好处,使其成为MeeGo的更好选择?
我有一个库,我想从中创建两个RPM包.
虽然我找到了几个关于如何创建基本RPM包的链接,但我找不到如何创建devel包(如果你想知道包是什么的话,请参阅这个问题devel).
如何生成RPM包的版本devel和non-devel版本,我该怎么办?
谢谢.
背景。
$ rpmbuild-版本 RPM版本4.3.3
我正在处理一个规范文件,该文件需要处理多个scriptlet中的文件列表。DRY(不重复自己)让我一次将列表定义为一个宏,并将其扩展为各种帮助程序脚本。维护列表很麻烦,因为我没有找到避免将所有文件放在同一行的方法。
%定义列表\ 一种 \ b
给出一个错误
%定义列表a \ b \
也给出一个错误
%定义列表a %定义列表%列表b
由于递归错误而失败
我正在编写一个(闭源)应用程序,并将为所有三个主要平台(MacOS X,Linux和Windows)提供二进制文件.它在LGPL许可下使用Qt,因此我需要动态链接Qt库.我理解如何通过简单地为应用程序提供Qt动态库来捆绑MacOS和Windows的应用程序,但我不确定如何正确地为Linux做这件事.
将应用程序作为包(.deb和.rpm)提供并允许包系统解析依赖关系是很传统的.应该用这种方法吗?如果是这样,我应该针对哪些发行版(我假设是Ubuntu和Fedora)?如果有人对此有任何经验,我会有兴趣听到它.
我正在尝试使用if语句快速检查是否在bash脚本中安装了rpm.但我想默默地做.目前,当我运行脚本并且rpm确实存在时,它将rpm的输出输出到我不想要的屏幕.
if rpm -qa | grep glib; then
do something
fi
Run Code Online (Sandbox Code Playgroud)
也许有一个我失踪的rpm选项?或者如果我只是需要改变我的陈述?
谢谢
我希望在没有源和平台或架构独立的情况下这样做,如果可能的话不使用spec文件.
任何好友,请你建议任何解决方案或任何免费工具.
感谢所有花时间阅读和回复我的线程的人.
Name: My Software
Version: 1.0.5
Release: 1
Summary: This is my software
Run Code Online (Sandbox Code Playgroud)
不确定是否有人之前尝试过此操作或是否容易,但是:
spec文件的版本有两个唯一的指标:
我想知道是否有人尝试或知道如何使用Jenkins $ BUILD_NUMBER变量来动态更改Release数字,从而Release每次新的成功构建完成时都会增加数量......?
好的,所以在试图追踪第n次各种软件的依赖关系并复制各种人为所有不同的linux发行版做的工作后,我想知道是否有更好的方法来捆绑各种软件到.rpm或.deb文件中以便于分发.
我目前为此做的设置是各种工具的frankenstein怪物,但主要是Vagrant和libguestfs,它们是在Fedora中运行的源代码构建的,因为没有任何发行版实际发布它virt-diff.以下是我目前遵循的步骤:
.vmdk并调用它base-image..vmdk并调用它non-base-image.virt-diff差异比较两个图像和转储数据文件调用diff.diff到另一种格式,其中包含我需要的信息,没有任何废话,我不喜欢的东西/var.guestfish使用一堆copy-out命令生成脚本.guestfish脚本.diff因为guestfish无法执行此操作.我想知道是否有更好的方法来做到这一点.你认为会有,但我还没弄清楚.
最近,我需要确保我们的软件可以使用cpackRHEL 7及其免费重建(例如CentOS 7)进行打包.尽管如此,我一直遇到RHEL 6.x及其免费重建所不存在的问题:cpack生成的RPM 都在其%files部分系统目录条目中具有如下内容:
%dir %attr(0755, root, root) "/"
%dir %attr(0755, root, root) "/usr"
%dir %attr(0755, root, root) "/usr/bin"
%dir %attr(0755, root, root) "/usr/share"
%dir %attr(0755, root, root) "/usr/share/applications"
%dir %attr(0755, root, root) "/usr/share/doc"
%dir %attr(0755, root, root) "/usr/share/icons"
%dir %attr(0755, root, root) "/usr/share/icons/hicolor"
%dir %attr(0755, root, root) "/usr/share/icons/hicolor/scalable"
%dir %attr(0755, root, root) "/usr/share/icons/hicolor/scalable/apps"enter code here
Run Code Online (Sandbox Code Playgroud)
不应该由包声明.
AFAIK,这个要求多年来一直在RPM规范中,但仅在RPM的最新版本(即比4.8.0更新)中强制实施.由于RHEL 7与RPM 4.11.1捆绑在一起,因此在下列期间cpack生成的内容filesystem-3.2-18.el7.x86_64与下面的错误冲突yum install ...:
file / from install of …Run Code Online (Sandbox Code Playgroud) 我使用rpm-maven-plugin来生成安装包.这在UBUNTU上运行正常但是当我在mac os上运行时,我遇到了以下错误.有没有办法让它在mac os上运行?
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
[WARNING] /bin/sh: rpm: command not found
[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.0.1:rpm (default) on project mongodb: RPM query for default vendor returned: '127' executing '/bin/sh -c rpm -E '%{_host_vendor}'' -> [Help 1]
Run Code Online (Sandbox Code Playgroud)