2015-03-31 39 views
0

我想使用腳本外殼安裝一系列軟件包。Shell腳本和百勝餐飲包裹不可用時該怎麼辦。 Centos

問題是:包不可用時該怎麼辦? 腳本思路是: 如果安裝了軟件包,請轉到下一個 (如果軟件包可供安裝,請安裝它),如果軟件包不可用,請退出 退出腳本,或者提醒我有關該軟件包的警告。按一個鍵繼續左右。 謝謝!

更多信息: 「安裝VNC服務器」 前段時間和尚發佈了這句話

百勝名單安裝VNC服務器>的/ dev/null的& &回聲||百勝-y安裝VNC服務器

**它會返回VNC服務器安裝或將安裝**

我試圖安裝MariaDB的,但是 - MariaDB的不適於CentOS 6.6我應該安裝其他倉庫或我還不知道的東西,重點是腳本的行爲。

PKG = MariaDB的|| yum list安裝$ pkg>/dev/null & & echo「 - > $ pkg installed」。 || yum install $ pkg

這一行,因爲它會返回 - - > mariadb安裝。

(這回是錯誤的,因爲MariaDB的不可用)

在命令行中輸入

百勝安裝MariaDB的

它將返回

加載的插件:fastestmirror

建立從緩存HOSTFILE安裝過程

加載鏡速度

基:mirrors.tripadvisor.com

額外:mirrors.seas.harvard.edu

更新:mirrors.lga7.us。 voxel.net

沒有包mariadb可用。

錯誤:沒有做

謝謝!

回答

0

也許你要檢查百勝的退出代碼(未經測試的Bash代碼):

yum list $pkg > /dev/null 
if [ $? -eq 0 ] 
then 
    echo "Installing $pkg" 
    yum -y install $pkg 
else 
    echo "$pkg not found or unknown error." 
fi
+0

謝謝!該腳本檢測到一個很好的包(mariadb未列出)。 在我的情況下,vnc-server是存儲庫的一部分,它可以安裝腳本給我這個錯誤: 沒有匹配軟件包列表vnc-server未找到或未知的錯誤。 – Correo 2015-03-31 15:23:01

1

馬庫斯·謝謝你,你的腳本檢測到一個包(MariaDB的未上市),這是很好的。在我的情況下,vnc-server是存儲庫的一部分,它可以被安裝,但是你的腳本結果表示:錯誤:沒有匹配的軟件包列出vnc-server未找到或未知的錯誤。 -

這個腳本運行的很好。


clear 
echo "**** Checking Packages ****" 
yum clean all 
yum update 
array=(traceroute tree net-tools nmap bind-utils vnc-server vsftpd mariadb) 
for pkg in "${array[@]}" 
do 
pkg="$pkg"

# grep -ir $pkg /var/cache/yum/ > /dev/null yum list $pkg > /dev/null # yum search $pkg>/dev/null a=$? echo "- $? - $a -" if [ $a -eq 0 ] then echo "* $pkg * installed or available to be installed" # yum install $pkg else echo "* $pkg not found or unknown error." fi done

我修改該腳本有點後做我加PKG = 「* $ PKG *」,我改變了的grep -ir $ PKG的/ var /緩存/百勝/> /開發/空此行百勝名單$ PKG>的/ dev/null的
我好喜歡它。

我想用百勝搜索$ PKG>的/ dev/null的但它不能阻擋的結果。 yum搜索比grep快得多,有關如何使用ir或陷阱結果的任何建議?
百勝搜索$ PKG>的/ dev/null的

再次感謝