Articles of rpm

rpm2cpio从RPM中跳过文件

这些步骤来自运行CentOS 6.5的一个盒子。 我只是尝试将RPM软件包转换为CPIO存档文件,并且很惊奇地发现RPM中列出的文件,但是没有存档。 以下是采取的步骤。 在RPM中列出path: $ rpm -qlp sssd-1.9.2-82.4.el6_4.x86_64.rpm | sort > rpm.lst 将RPM转换为CPIO存档: $ rpm2cpio sssd-1.9.2-82.4.el6_4.x86_64.rpm > sssd-1.9.2-82.4.el6_4.x86_64.cpio 保存档案中的文件列表。 sedfilter需要删除path名中的前导点条目。 这不是RPM列表所必需的。 $ cpio -i -t < sssd-1.9.2-82.4.el6_4.x86_64.cpio | sed -e 's|^.||' | sort > cpio.lst 最后,差异显示丢失的文件: $ diff -u cpio.lst rpm.lst — cpio.lst 2015-07-16 19:54:06.020494348 +0530 +++ rpm.lst 2015-07-16 19:53:38.012494371 +0530 @@ -2,6 +2,7 […]

CentOS版本库:EPEL或rpmforge,哪一个更好,为什么?

所以每个使用CentOS的人都知道默认存储库有其限制。 我已经使用rpmforge多年来作为辅助回购。 我通常使用yum优先级来确保rpmforge永远不会安装基本回购可以照顾的东西。 最近我遇到了安装EPEL作为专业回购的需求。 EPEL保持更新比rpmforge还是更好? 我应该使用,而不是rpmforge?

YUM依赖项问题,即使安装了库

我们从源代码构build我们自己的php和mysql包,这个包是用于php-5.4.10版本的,并且将它们放在我们自己的仓库中。 我们来调用这个包custom-php和custom-mysql(-libs&-server) 当我做一个yum在服务器上安装custom-php时,yum列出了一个依赖关系问题: –> Finished Dependency Resolution Error: Package: custom-php-1.1.x86_64 (php) Requires: libmysqlclient.so.18(libmysqlclient_16)(64bit) Error: Package: custom-php-1.1.x86_64 (php) Requires: libmysqlclient.so.18(libmysqlclient_18)(64bit) You could try using –skip-broken to work around the problem You could try running: rpm -Va –nofiles –nodigest libmysqlclient.so.18文件由custom-mysql-libs提供,它在custom-php的spec文件中的Requires下列出。 即使我发行yum install custom-php之前手动安装了custom-mysql-libs,我仍然得到上面的错误。 我们的custom-mysql-libs是从mysql源代码构build的,并提供了libmysqlclient.so: $ rpm -qlp custom-mysql-libs-1.0.x86_64.rpm /custom/lib64/libmysqlclient.so /custom/lib64/libmysqlclient.so.18 /custom/lib64/libmysqlclient.so.18.0.0 …. $ 当我们在不同的地方安装这些库时,custom-mysql-libs会在完成之后发出一个ldconfig文件,该文件在/etc/ld.so.conf.d/文件中指定的path。 我validation了这些库是可见的与ldconfig -v # […]

下载已安装的RPM命令包

我有一个CentOS机器,我已经安装了openssl-devel $ yum install openssl-devel 它下载并安装了所有的依赖包。 现在我需要所有这些RPM包。 是否有可能只下载RPM软件包? 当我这样做: $ yum install openssl-devel -y –downloadonly 它说 Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version 因为它已经安装。 有谁知道如何在同一个系统上下载这些RPM软件包?

我刚刚签署的RPM上的错误签名或NOKEY错误

我正在为RHEL / CentOS 5主机获取RPM签名方面遇到严重问题。 TL; DR:RPM签名不起作用,并且它以各种疯狂和不稳定的方式工作,具体取决于确切的GPG密钥大小和格式,甚至是在何处生成,当密钥显示为rpm -qa gpg-*时产生NOKEY错误rpm -qa gpg-*目前; 刚刚在同一台机器上用相同的密钥签名的RPM上的BAD签名错误; gpg无法直接接受密码的密钥上无效的密码错误; 等等 我用4096,2048和1024位RSA密钥和一个2048位DSA密钥进行了testing,在同一个CentOS 5.10虚拟机上进行签名和validation。 行为因键的types和大小而异,但我还没有find任何实际工作的东西。 名称,电子邮件和RPM文件名由XXX屏蔽,但没有其他编辑,例如DSA 2048密钥: $ rpm –version RPM version 4.4.2.3 $ gpg –list-secret 92fb1e62 sec 2048D/92FB1E62 2014-08-29 [expires: 2015-08-29] uid XXX <[email protected]> ssb 2048g/2E0F0A24 2014-08-29 [expires: 2015-08-29] $ gpg -a –export 92fb1e62 > /tmp/packagers $ sudo rpm –import /tmp/packagers $ rpm […]

Linux的/etc/init.d – 符号链接,硬链接还是实际文件?

我有一个Debian和一个RPM包,需要将启动/停止脚本添加到/etc/init.d目录。 最近,一位远程开发人员告诉我,“知情者”知道“最佳实践”是将启动安装在/etc/init.d目录中,而不是使用符号链接,尤其是在安装包时在不同的分区上。 我一直使用符号链接。 一个“ls -la”显示了很多包使用符号链接。 有没有一个Unix / Linux专家可以给出一个明确的答案,关于在/etc/init.d目录启动脚本的最佳做法。 是最佳实践符号链接,硬链接,实际的文件或者它真的很重要? 如果你能引用一个资料来源,那将是非常好的。 我有谷歌这个话题,但我无法find答案。

在CentOS上安装软件:二进制文件还是rpm?

我对Linux系统很新。 我可以select安装一个软件( ImageMagick ),使用它的.rpm或编译.tar.gz( 我已经完成)的源代码。 我应该select哪一个(你会)? 如果我selectrpm,我应该使用rpm -Uvh <filename>还是使用yum来安装rpm? 如果我select安装二进制文件,安装(Apache / httpd使用)的常用方法是什么? 我想我应该下载.tar.gz文件到/usr/local/src ,用tar zxvf <filename>解压缩,然后./configure make install 。 一般情况下,如果我这样做,二进制文件会自动去/usr/bin (它为ImageMagick做),并为所有用户设置环境path?

CentOS:RPM是否创build了一个用户?

我正在使用CentOS 5.5。 我从CentOS.org安装了mysql-server RPM。 我相信这个RPM应该创build一个名为“mysql”的用户。 但是,这个用户不存在。 如何查看RPM的内容以查看是否尝试创build用户或组?

安装到/ opt / rh的RPM

我注意到标准CentOS 5.10版本库中的“mysql55”RPM安装到/ opt / rh。 预计最终用户可能会改变这个位置? 例如,当尝试构build依赖于MySQL 5.5文件的软件时,会产生复杂性。

如何处理Linux发行版本之间的Puppet版本差异

我们是一个小型的webdev商店,正在调查在各种开发和生产服务器上推出Puppet。 puppetmaster是一个Ubuntu 10.04服务器,来自Ubuntu的repo,Puppet 0.25.4。 一些puppet客户端是使用puppet 0.25.4的Ubuntu,而另外一些则是基于RedHat或Centos的,他们正在使用提供puppet 0.25.5包的EPEL存储库。 这些较新的客户不能与“老”木偶大师交谈,所以我可以升级主人或降级客户。 不过,我无法findrpm将客户端降级到0.25.4。 build立我自己的软件包是一件麻烦的事情,因为我是公司内唯一的系统pipe理员,所以我无法做到这一点。 如何处理异构环境中的不同客户端/服务器版本?