2011-09-05 135 views
6

我正在修改以前爲Ubuntu編寫的CentOS的準備腳本。CentOS相當於dpkg -s

在Ubuntu腳本中,經常調用命令dpkg -s {some program}。例如,一個這樣的命令是dpkg -s snmpd來檢查SNMP守護程序是否已安裝。

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

例如,運行rpm -q snmpd回報:

package snmpd is not installed 

我的問題是,什麼是CentOS的等效Ubuntu的命令dpkg -s的?

回答

0

dpkg -s確實需要一個包的名稱,而不是一個文件或程序,作爲參數。 (在很多情況下,程序將具有相同的名稱提供它的包裝。)

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

Package: gcc 
Status: install ok installed 
Priority: optional 
Section: devel 
Installed-Size: 64 
Maintainer: Ubuntu Developers <[email protected]> 
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 <[email protected]> 

在一個CentOS系統,rpm -q gcc打印:

gcc-4.1.2-50.el5 

它不打印儘可能多的信息,但如果你正在做的是檢查是否安裝了軟件包,它應該沒問題。如果您需要了解更多信息或其他選項,man rpm;其他查詢可用。

如果rpm -q snmpd打印package snmpd is not installed,這可能正是您所需要的信息。

兩個dpkg -srpm -q設置退出狀態。因此,報告失敗,如果沒有安裝包。