以 dpkg -i 自動安裝大量的 *.deb 套件,
請問要如何偵測系統中某個套件是否已經安裝了呢?
謝謝!
意思大概是:
- 代碼: 選擇全部
if [ 某個 A 套件已安裝 ]; then
# 繼續安裝 B 套件
else
# 放棄安裝 B 套件
fi
if [ 某個 A 套件已安裝 ]; then
# 繼續安裝 B 套件
else
# 放棄安裝 B 套件
fi
#!/bin/sh
dpkg=$1
dpkg-query -s ${dpkg} ; STAT=$?
if [ $STAT -ne 0 ]; then
echo 繼續安裝 $dpkg 套件
else
echo 放棄安裝 $dpkg 套件
fi
$ ./query.sh gcc
Package: gcc
Status: install ok installed
Priority: standard
Section: devel
Installed-Size: 28
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Architecture: i386
Source: gcc-defaults (1.29)
Version: 4:4.0.2-1
Provides: c-compiler
Depends: cpp (>= 4:4.0.2-1), gcc-4.0 (>= 4.0.2-2)
Recommends: libc6-dev | libc-dev
Suggests: 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.
放棄安裝 gcc 套件
$ ./query.sh microsoftoffice
系統沒有安裝套件“microsoftoffice”,因而沒有相關的訊息。
使用 dpkg --info (= dpkg-deb --info) 來檢測打包好的檔案,
還可以用過 dpkg --contents (= dpkg-deb --contents) 來列出它們的內容。
繼續安裝 microsoftoffice 套件
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客