12

我正在为 CentOS 改编一个之前为 Ubuntu 编写的准备脚本。

在 Ubuntu 脚本中,该命令dpkg -s {some program}被频繁调用。例如,一个这样的命令是dpkg -s snmpd检查是否安装了 SNMP 守护程序。

CentOS 中的等价物是什么?我知道 RPM 是包管理器。该命令rpm -q类似,但它查找的是包而不是程序。

例如,运行rpm -q snmpd返回:

package snmpd is not installed

我的问题是,Ubuntu 命令的 CentOS 等价物是什么dpkg -s

4

1 回答 1

3

dpkg -s确实将包名称而不是文件或程序作为参数。(在许多情况下,一个程序将与提供它的包同名。)

例如,在我的 Ubuntu 系统上,dpkg -s gcc打印:

Package: gcc
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Source: gcc-defaults (1.98ubuntu3)
Version: 4:4.5.2-1ubuntu3
Provides: c-compiler
Depends: cpp (>= 4:4.5.2-1ubuntu3), gcc-4.5 (>= 4.5.2-1~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake1.9, libtool, flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Description: The GNU C compiler
 This is the GNU C compiler, a fairly portable optimizing compiler for C.
  .
   This is a dependency package providing the default GNU C compiler.
   Original-Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>

在 CentOS 系统上,rpm -q gcc打印:

gcc-4.1.2-50.el5

它不会打印太多信息,但是如果您所做的只是检查是否安装了软件包,那应该没问题。如果您需要更多信息或其他选择,man rpm; 其他查询可用。

如果rpm -q snmpdprints package snmpd is not installed,那可能就是您需要的信息。

两者dpkg -srpm -q相应地设置退出状态,如果未安装包则报告失败。

于 2011-09-05T03:59:24.970 回答