Articles of rpm

在RPM spec文件中设置目标目录

我有一个非常简单的tar.gz文件,我想用RPM软件包安装Java文件。 我创build了这个spec文件: Name: test Version: 1.0 Release: 1%{?dist} Summary: test installation script Group: Utilities License: GPL URL: http://oracle-base.com/articles/linux/linux-build-simple-rpm-packages.php Source0: test-1.0.tar.gz BuildArch: x86_64 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) #BuildRequires: #Requires: %description test installation script %prep %setup -c /opt/test %build #%%configure #make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT #make install DESTDIR=$RPM_BUILD_ROOT #install -d $RPM_BUILD_ROOT/opt/agent %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) […]

build立rpm,覆盖_topdir,但获得BuildRequires代表?

我有一个我可以创build的libfoo-devel rpm,使用技巧来覆盖_topdir 。 现在我想要构build一个包含BuildRequires'libfoo libfoo-devel '的包“ bar ”,我似乎无法find正确的方法来访问libfoo-devel的内容,而无需将其安装在构build主机上。我应该怎么做呢? 编辑: 我的构build和目标发行版都是SuSE。 我更喜欢不需要mock解决scheme,因为我相信SuSE不会将其包含在股票回购中。 后续编辑: 我相信我所寻求的答案是在build包中。 也许这是SuSE的mock答案? 或者它是oBS服务的分布式版本? 描述 build是一种以安全,清洁的方式构buildSuSE Linux RPM的工具。 编译时会将一个最小的SuSE Linux作为编译系统安装到某个目录中,并且会根据这个系统来编译这个包。 这样,即使程序包不使用BuildRoot,也不会冒险损坏工作系统(例如由于破坏的spec文件)。 构buildsearchspec文件的BuildRequires:行; 如果find这样的行,则安装所有指定的rpm。 否则,使用默认包的select。 请注意,构build不会自动解决缺less的依赖关系,因此指定的rpms必须足够构build。

是否可以将RPMembedded到另一个RPM中?

我们可以在另一个RPM中embedded一组RPM吗? 我有一些RPM的几个Linux变种和体系结构。 我想使用这些RPM文件创build一个RPM文件,以便用户可以使用单个RPM文件接收和安装; 以便用户不必担心下载正确的平台特定的RPM文件。

%post scriptlet失败..这个scriptlet位于哪里?

我有一个错误: %post(blabla.i386) scriptlet failed, exit status 1 这个scriptlet在哪里?

创buildspec文件(RPM)

包含要执行的shell命令的2个文件,以及包含需要安装的链的1个iptables-save 我如何写规格文件来: -1将我的2个shell文件复制到/ etc / -2执行iptables-restore </ home / iptables-save 谢谢你的时间。 PS:我经历了这个方法。 不幸的是我在这个新手,我找不到解决scheme。

%config(noreplace)文件出现意外的RPM冲突

我使用rpmbuild创build了自己的RPM 。 我的RPM 包含的configuration文件 永远不会被覆盖 ,即使RPM包含这些configuration文件的新版本。 要归档这个,我用这个标签 %config(noreplace) /opt/mypackage/etc/* 在spec文件中。 根据文档和本网站 ,在这种情况下,本地修改的文件将永远不会被覆盖,这正是我想要的。 但是,在进行以下操作时: 安装RPM的版本1 更改configuration文件etc/myconfig 使用RPM版本2更新软件包 我正在发生冲突: $ rpm –prefix ~/rpmroot/ -ih dist/mypackage-1.0.1-1.x86_64.rpm ########################################### [100%] file /home/user/rpmroot/mypackage/etc/myconfig from install of mypackage-1.0.2-1.x86_64 conflicts with file from package mypackage-1.0.1-1.x86_64 问题: 这个冲突怎么解释呢? (我希望新版本的configuration文件将被保存为myconfig.rpmnew ,而现有的保持不变) 我做错了什么? 更新(更多信息) rpm -qcp dist/mypackage-1.0.1-1.x86_64.rpm的输出是: /opt/mypackage/etc/config1.xml /opt/mypackage/etc/config2.xml /opt/mypackage/etc/run.sh /opt/mypackage/etc/config3.xml 完整的%files部分: %files %defattr(0444,root,root) /opt/mypackage/java/* #dba […]

genisoimageencryption文件名

我正在尝试为脱机RPM存储库构buildISO映像。 我有我需要的文件和结构,但是当我创buildISO映像时,文件名是乱码的: ConsoleKit-32bit-0.2.10-64.65.1.x86_64.rpm 变 ConsoleKit-32bit-0.2.10-64..r 我已经在命令行上使用以下选项尝试了这一点,并得到了相同的结果: genisoimage -f -U -o update.iso /data/iso genisoimage -f -l -allow-lowercase -o update.iso /data/iso genisoimage -f -l -allow-leading-dots -relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translate -o update.iso /data/iso 有什么我可能会错过,将允许保存文件名? 这对于ISO仓库正常工作至关重要。

build立转速

有没有一个简单的程序来build立一个RPM.If所以请解释或提供链接……… 我的要求很简单.. 我有两个其他RPM应该被合并成一个单一的RPM …. 请解释过程…. 提前致谢……….

如何recursion下载RPM依赖关系?

我想编写一个迷你脚本,在Linux RedHat中下载RPM软件包的所有recursion依赖关系。 当我使用: repoquery -a –requires –recursive –resolve PACKAGE_NAME 我没有得到所有的recursion依赖,但是当我使用: repoquery -a –tree-requires PACKAGE_NAME 我得到所有的依赖,但我没有得到一个可用的列表,我可以pipe道进入yumdownloader 。 我该怎么办?

如何在CentOS 6上升级到CouchDB 1.3.0 +?

我试图解开所有的依赖关系来编译CouchDB从源代码运行在CentOS 6.是否有一个预先发布的软件包在那里会给我最新版本的CouchDB(目前1.3.0) ? 我的原始安装完成使用: # yum install couchdb …这导致了一个非常旧的版本1.0.4! 我认为必须有另一种方法来轻松获得最新的CouchDB安装。 除了从源代码编译以外的任何build议?