为什么 rpm -q vnc-server 在明显安装成功后返回未安装

use*_*234 0 rpm

root@host [/tmp]#  yum install vnc-server
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirror.sanctuaryhost.com
 * extras: mirror.ubiquityservers.com
 * updates: mirror.ubiquityservers.com
Setting up Install Process
Package tigervnc-server-module-1.0.90-0.17.20110314svn4359.el6.x86_64 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)

然而,当我跑步时,rpm -q vnc-server我得到:

root@host [/tmp]# rpm -q vnc-server
package vnc-server is not installed
root@host [/tmp]#
Run Code Online (Sandbox Code Playgroud)

我在这里遵循说明

mri*_*con 6

RPM 软件包有一种方法可以表明它们作为安装的一部分究竟提供了什么。这些“提供”通常是自动计算的,但也可以由打包者手动添加。通常,这样做是为了满足通用依赖性——例如,某些包可能需要一种发送邮件的方式,但它们并不真正关心您是否运行 postfix、sendmail、exim 或其他任何东西。为了解决这个问题,提供邮件传输功能的包有一个通用的“提供:MTA”。

您可以检查您的系统:

yum provides MTA
Run Code Online (Sandbox Code Playgroud)

您将看到这将返回 exim、postfix 和 sendmail。当多个包提供通用功能(例如“vnc 服务器”)时,它们可以将其作为“手册提供”的一部分包含在内。在我们的例子中:

yum provides vnc-server
Run Code Online (Sandbox Code Playgroud)

这将返回多个点击,其中tigervnc-server 是其中之一。

您可以使用 列出包中的所有“提供” rpm -q --provides。例如:

# rpm -q --provides tigervnc-server
config(tigervnc-server) = 1.1.0-6.1.fc17
tightvnc-server = 1.5.0-0.15.20090204svn3586
vnc-libs = 4.1.3-2
vnc-server = 4.1.3-2
tigervnc-server = 1.1.0-6.1.fc17
tigervnc-server(x86-64) = 1.1.0-6.1.fc17
Run Code Online (Sandbox Code Playgroud)