我怎么知道我的软件包的 rpm 安装成功了?

gpu*_*guy 5 rhel

我下载了 dos2unix 的 rpm 并像这样安装(在 RHEL 6、64 位上)

[root@xilinx Downloads]# rpm -ivh dos2unix-5.3.3-5.ram0.98.src.rpm 
   1:dos2unix               warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
########################################### [100%]
[root@xilinx Downloads]# 
Run Code Online (Sandbox Code Playgroud)

但是可以看出我收到了这些警告。为什么?

我怎么知道我的 dos2unix 安装成功了?

更新

[root@xilinx Downloads]# rpm -ivh dos2unix-5.3.3-5.ram0.98.src.rpm
   1:dos2unix               warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
########################################### [100%]
[root@xilinx Downloads]# 
[root@xilinx Downloads]# 
[root@xilinx Downloads]# 
[root@xilinx Downloads]# 
[root@xilinx Downloads]# rpm -ql dos2unix
package dos2unix is not installed
[root@xilinx Downloads]# 
Run Code Online (Sandbox Code Playgroud)

然后我尝试

[root@xilinx acme]# yum install mock
Loaded plugins: refresh-packagekit, rhnplugin
There was an error parsing the RHN proxy settings.
RHN support will be disabled.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: InstallMedia. Please verify its path and try again
[root@xilinx acme]# 
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 13

任何时候安装 RPM 时,您都可以使用 RPM 的查询开关检查它是否已安装。您可以找到我们关于已安装软件包的 2 条有用信息。

但是,在我进入所有这些之前,请注意.rpm您安装的名称。

dos2unix-5.3.3-5.ram0.98.src.rpm
Run Code Online (Sandbox Code Playgroud)

二进制 RPMS 与源 RPM

这是一个源 RPM,它不是构建的软件(二进制),而是一个可以用来重建/重新编译普通.rpm文件的包。您通常使用以下rpmbuild命令执行此操作:

$ rpmbuild --rebuild dos2unix-5.3.3-5.ram0.98.src.rpm
Run Code Online (Sandbox Code Playgroud)

如果在安装之前列出包的内容,您也可以分辨出差异。

$ rpm -qpl dos2unix-5.3.3-5.ram0.98.src.rpm
dos2unix-5.3.3.tar.gz
dos2unix.spec
Run Code Online (Sandbox Code Playgroud)

注意这.rpm包括一个.spec文件?那是关于如何编译和安装 dos2unix 软件的“配方”文件,它也包含在文件dos2unix-5.3.3.tar.gz.

您可以在 rpm.org 网站上的这篇题为:源包文件和如何使用它们的文章中阅读有关源 RPM(又名 src.rpm 或 .srpm)文件的更多信息。

因此,如果你真的想安装 dos2unix,你应该安装一个像这样命名的包:

  • dos2unix-5.3.3-5.ram0.98.i386.rpm
  • dos2unix-5.3.3-5.ram0.98.x86_64.rpm
  • dos2unix-5.3.3-5.ram0.98.i686.rpm
  • dos2unix-5.3.3-5.ram0.98.noarch.rpm

注意:这篇文章的其余部分展示了如何找到二进制 RPM,例如在您的系统上安装的这些。


rpm -qi <...包名称..>

这将为您提供有关给定包的标准信息。版本,在哪里建造,什么时候建造等等。

$ rpm -qi dos2unix
Name        : dos2unix
Version     : 6.0.3
Release     : 2.fc19
Architecture: x86_64
Install Date: Sat 07 Dec 2013 09:02:59 PM EST
Group       : Applications/Text
Size        : 184775
License     : BSD
Signature   : RSA/SHA256, Thu 14 Mar 2013 05:25:00 AM EDT, Key ID 07477e65fb4b18e6
Source RPM  : dos2unix-6.0.3-2.fc19.src.rpm
Build Date  : Fri 22 Feb 2013 10:50:05 AM EST
Build Host  : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://waterlan.home.xs4all.nl/dos2unix.html
Summary     : Text file format converters
Description :
Convert text files with DOS or Mac line endings to Unix line endings and
vice versa.
Run Code Online (Sandbox Code Playgroud)

rpm -ql <..pkg 名称..>

您可以使用rpm -ql <..pkg name..>.

$ rpm -ql dos2unix
/usr/bin/dos2unix
/usr/bin/mac2unix
/usr/bin/unix2dos
/usr/bin/unix2mac
/usr/share/doc/dos2unix-6.0.3
/usr/share/doc/dos2unix-6.0.3/COPYING.txt
/usr/share/doc/dos2unix-6.0.3/ChangeLog.txt
...
Run Code Online (Sandbox Code Playgroud)

验证软件包安装

有一个较小但仍然有用的开关,它允许您验证软件包的安装。此开关将限定磁盘上的文件以确保它们的权限设置正确,与安装时相同,并执行每个文件的校验和 (MD5SUM) 以确保它没有被篡改或更改.

$ rpm -V -v dos2unix
.........    /usr/bin/dos2unix
.........    /usr/bin/mac2unix
.........    /usr/bin/unix2dos
.........    /usr/bin/unix2mac
.........    /usr/share/doc/dos2unix-6.0.3
.........  d /usr/share/doc/dos2unix-6.0.3/COPYING.txt
.........  d /usr/share/doc/dos2unix-6.0.3/ChangeLog.txt
.........  d /usr/share/doc/dos2unix-6.0.3/NEWS.txt
...
Run Code Online (Sandbox Code Playgroud)

您应该只在左栏中看到点。如果您看到诸如S或 之类的字母,M则您知道大小或权限不一致。

摘自 rpm 手册页

   S file Size differs
   M Mode differs (includes permissions and file type)
   5 digest (formerly MD5 sum) differs
   D Device major/minor number mismatch
   L readLink(2) path mismatch
   U User ownership differs
   G Group ownership differs
   T mTime differs
   P caPabilities differ
Run Code Online (Sandbox Code Playgroud)


Tho*_*erk 1

查看 rpm 文件是否已安装:

rpm -ql dos2unix
Run Code Online (Sandbox Code Playgroud)

关于您的安装,看起来不错,rpm 需要一个您没有的组(mockbuild)和用户。应该由负责的 rpm 修复,但这些只是警告,您的安装很可能工作正常。