腳本安裝linux
⑴ 在linux shell腳本中,安裝過程中如何實現自動選擇安裝選項
在Linux shell腳本中,安裝過程中如何實現自動選擇安裝選項?
Linux中shell腳本運行時經常需要進行交互,比如安裝軟體的過程中對license聲明的確認,需要輸入yes,回車之類的確認信息。這個在自動化安裝的時候就會是個問題。
通常對於這個問題比較靈活的解決方法就是TCL的Expect。但Expect還需要另外安裝,平台通用性不高,比較麻煩。
另外一些簡單的方法倒也是有,不過可用性不高,特別是對要求多次交互就吃力了。但怎麼說其還是能解決大多數的問題,因為復雜的情況還是比較少的。比 如要一個調用一個安裝腳本 : installWAS.sh, 這個腳本要求輸入回車,則可以:echo | installWAS.sh;如果要求輸入yes|no,加回車,則可以echo yes|installWAS.sh. 這下自動化安裝就有希望了。
再有一下的代碼也可以帶來一些思路:
[0 No.2015 huan@huan ~/tmp]$ cat foo read -s -n1 -p "Press any key to continue ... " echo "Your inputs: $REPLY"
[0 No.2016 huan@huan ~/tmp]$ ./foo < /dev/null Your inputs:
[0 No.2017 huan@huan ~/tmp]$
⑵ Linux對應的安裝腳本怎樣查
在Linux
操作系統中,有一個系統軟體包,它的功能類似於Windows裡面的「添加/刪除程序」,但是功能又比「添加/刪除程序」強很多,它就是
Red
Hat
Package
Manager(簡稱RPM)。此工具包最先是由Red
Hat公司推出的,後來被其他Linux開發商所借用。由於它為Linux使用者省去了很多時間,所以被廣泛應用於在Linux下安裝、刪除軟體。下面就給大家介紹一下它的具體使用方法。
1.我們得到一個新軟體,在安裝之前,一般都要先查看一下這個軟體包里有什麼內容,假設這個文件是:Linux-1.4-6.i368.rpm,我們可以用這條命令查看:
rpm
-qpi
Linux-1.4-6.i368.rpm
系統將會列出這個軟體包的詳細資料,包括含有多少個文件、各文件名稱、文件大小、創建時間、編譯日期等信息。
2.上面列出的所有文件在安裝時不一定全部安裝,就像Windows下程序的安裝方式分為典型、完全、自定義一樣,Linux也會讓你選擇安裝方式,此時我們可以用下面這條命令查看軟體包將會在系統里安裝哪些部分,以方便我們的選擇:
rpm
-qpl
Linux-1.4-6.i368.rpm
3.
選擇安裝方式後,開始安裝。我們可以用rpm-ivh
Linux-1.4-6.i368.rpm命令安裝此軟體。在安裝過程中,若系統提示此軟體已安裝過或因其他原因無法繼續安裝,但若我們確實想執行安裝命令,可以在
-ivh後加一參數「-replacepkgs」:
rpm
-ivh
-replacepkgs
Linux-1.4-6.i368.rpm
4.有時我們卸載某個安裝過的軟體,只需執行rpm-e
<文件名>;命令即可。
5.對低版本軟體進行升級是提高其功能的好辦法,這樣可以省去我們卸載後再安裝新軟體的麻煩,要升級某個軟體,只須執行如下命令:rpm
-uvh
<文件名>;,注意:此時的文件名必須是要升級軟體的升級補丁
6.
另外一個安裝軟體的方法可謂是Linux的獨到之處,同時也是RMP強大功能的一個表現:通過ftp站點直接在線安裝軟體。當找到含有你所需軟體的站點並與此網站連接後,執行下面的命令即可實現在線安裝,譬如在線安裝Linux-1.4-6.i368.rpm,可以用命令:
rpm
-i
ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm
7.
在我們使用電腦過程中,難免會有誤操作,若我們誤刪了幾個文件而影響了系統的性能時,怎樣查找到底少了哪些文件呢?RPM軟體包提供了一個查找損壞文件的功能,執行此命令:rpm
-Va即可,Linux將為你列出所有損壞的文件。你可以通過Linux的安裝光碟進行修復。
8.Linux系統中文件繁多,在使用過程中,難免會碰到我們不認識的文件,在Windows下我們可以用「開始/查找」菜單快速判斷某個文件屬於哪個文件夾,在Linux中,下面這條命令行可以幫助我們快速判定某個文件屬於哪個軟體包:
rpm
-qf
<文件名>;
9.當每個軟體包安裝在Linux系統後,安裝文件都會到RPM資料庫中「報到」,所以,我們要查詢某個已安裝軟體的屬性時,只需到此資料庫中查找即可。注意:此時的查詢命令不同於1和8介紹的查詢,這種方法只適用於已安裝過的軟體包!命令格式:
rpm
-參數<文件名>;