2015-06-05 88 views
0

我已經做了一個C程序,但它取決於ncurses庫。所以,當我把代碼交給其他人時,我必須要求他/她先安裝ncurses庫,然後只使用我提供的Makefile編譯代碼。shell腳本安裝包如果沒有安裝alreay

但是,我想編寫一個shell腳本,如果它尚未安裝,它將自動安裝ncurses。所以我可以簡單地讓我的朋友來運行腳本。

這就是我想要的腳本來完成::

if(ncurses-dev package not installed) 
    sudo apt-get install ncurses-dev 

我知道這是一個非常基本的問題,但我不知道如何做到這一點。我試圖谷歌搜索,但無法找到一個簡單的教程,我可以理解。

回答

1

For fedora

if ! rpm -qa | grep -qw $package_name$; then 
    yum install $package_name 
fi 

For UBUNTU

#!/bin/sh 

for package; do 
    dpkg -s "$package" >/dev/null 2>&1 && { 
     echo "$package is installed." 
    } || { 
     sudo apt-get install $package 
    } 
done 

這可用於檢查多個包以及。

+0

@sps - 你要運行此腳本僅在Ubuntu或任何Linux發行版。 –

+0

我的c程序適用於任何Linux系統....但現在我想至少讓Debian(ubuntu)的腳本工作...我從我的手機寫這個答覆...我會回到我的電腦2-3小時後,然後我可以嘗試腳本你建議..感謝你的幫助,並已upvoted你的答案,但不能接受它,直到我在我的電腦上測試.. – sps

+0

是的這適用於'ubuntu'。謝謝..我沒有'red hat' linux來檢查'yum'雖然... – sps

0

要在沒有用戶交互的情況下自動安裝Debian(在你的情況下是Ubuntu),你可以在命令行參數列表中使用--force-yes --yes開關。像這樣:

sudo易於得到--force-是--yes安裝包