1. 程式人生 > >Linux 下軟體安裝

Linux 下軟體安裝

實驗介紹

介紹 Ubuntu 下軟體安裝的幾種方式,及 apt,dpkg 工具的使用。

一、Linux 上的軟體安裝

通常 Linux 上的軟體安裝主要有三種方式:

  • 線上安裝
  • 從磁碟安裝deb軟體包
  • 從二進位制軟體包安裝
  • 從原始碼編譯安裝

這幾種安裝方式各有優劣,而大多數軟體包會採用多種方式釋出軟體,所以我們常常需要全部掌握這幾種軟體安裝方式,以便適應各種環境。下面將介紹前三種安裝方式,從原始碼編譯安裝你將在 Linux 程式設計中學習到。

二、線上安裝

試想一下,平時我們在使用 Windows 的時候,想要安裝一個軟體,我們需要在網上去下載對應軟體的安裝包,接著安裝的時候就是不斷的去點選下一步,這些流程想必大家已經經歷的無數回了,但是在 Linux 下,一個命令加回車,等待一下,軟體就安裝好了,這就是方便的線上安裝軟體的方式。在學習這種安裝方式之前有一點需要說明的是,在不同的linux發行版上面線上安裝方式會有一些差異包括使用的命令及它們的包管理工具,因為我們的開發環境是基於ubuntu的,所以這裡我們涉及的線上安裝方式將只適用於ubuntu發行版,或其它基於ubuntu的發行版如國內的ubuntukylin(優麒麟),ubuntu又是基於debian的發行版,它使用的是debian的包管理工具dpkg,所以一些操作也適用與debian。而在其它一些採用其它包管理工具的發行版如redhat,centos,fedora等將不適用(redhat和centos使用rpm)

提醒:非會員使用者不能連結外網,若線上安裝的軟體需從外網下載資源將無法成功安裝。

1. 先體驗一下

比如我們想安裝一個軟體,名字叫做 w3m(w3m是一個命令列的簡易網頁瀏覽器),那麼輸入如下命令:

$ sudo apt-get install w3m

這樣的操作你應該在前面的章節中看到過很多次了,它就表示將會安裝一個軟體包名為w3m的軟體

我們來看看命令執行後的效果:

$ w3m www.shiyanlou.com/faq

注意:如果你在安裝一個軟體之後,無法立即使用Tab鍵補全這可命令,你可以嘗試先執行source ~/.zshrc,然後你就可以使用補全操作。

2. apt 包管理工具介紹

APT是Advance Packaging Tool(高階包裝工具)的縮寫,是Debian及其派生髮行版的軟體包管理器,APT可以自動下載,配置,安裝二進位制或者原始碼格式的軟體包,因此簡化了Unix系統上管理軟體的過程。APT最早被設計成dpkg的前端,用來處理deb格式的軟體包。現在經過APT-RPM組織修改,APT已經可以安裝在支援RPM的系統管理RPM包。這個包管理器包含以 apt- 開頭的的多個工具,如apt-get apt-cache apt-cdrom 等,在Debian系列的發行版中使用。

當你在執行安裝操作時,首先apt-get 工具會在本地的一個數據庫中搜索關於 w3m

 軟體的相關資訊,並根據這些資訊在相關的伺服器上下載軟體安裝,這裡大家可能會一個疑問:既然是線上安裝軟體,為啥會在本地的資料庫中搜索?要解釋這個問題就得提到幾個名詞了:

  • 軟體源映象伺服器
  • 軟體源

我們需要定期從伺服器上下載一個軟體包列表,使用 sudo apt-get update 命令來保持本地的軟體包列表是最新的(有時你也需要手動執行這個操作,比如更換了軟體源),而這個表裡會有軟體依賴資訊的記錄,對於軟體依賴,我舉個例子:我們安裝 w3m 軟體的時候,而這個軟體需要 libgc1c2 這個軟體包才能正常工作,這個時候 apt-get 在安裝軟體的時候會一併替我們安裝了,以保證 w3m 能正常的工作。

3.apt-get

apt-get使用各用於處理apt包的公用程式集,我們可以用它來線上安裝、解除安裝和升級軟體包等,下面列出一些apt-get包含的常用的一些工具:

工具 說明
install 其後加上軟體包名,用於安裝一個軟體包
update 從軟體源映象伺服器上下載/更新用於更新本地軟體源的軟體包列表
upgrade 升級本地可更新的全部軟體包,但存在依賴問題時將不會升級,通常會在更新之前執行一次update
dist-upgrade 解決依賴關係並升級(存在一定危險性)
remove 移除已安裝的軟體包,包括與被移除軟體包有依賴關係的軟體包,但不包含軟體包的配置檔案
autoremove 移除之前被其他軟體包依賴,但現在不再被使用的軟體包
purge 與remove相同,但會完全移除軟體包,包含其配置檔案
clean 移除下載到本地的已經安裝的軟體包,預設儲存在/var/cache/apt/archives/
autoclean 移除已安裝的軟體的舊版本軟體包

下面是一些apt-get常用的引數:

引數 說明
-y 自動迴應是否安裝軟體包的選項,在一些自動化安裝指令碼中使用這個引數將十分有用
-s 模擬安裝
-q 靜默安裝方式,指定多個q或者-q=#,#表示數字,用於設定靜默級別,這在你不想要在安裝軟體包時螢幕輸出過多時很有用
-f 修復損壞的依賴關係
-d 只下載不安裝
--reinstall 重新安裝已經安裝但可能存在問題的軟體包
--install-suggests 同時安裝APT給出的建議安裝的軟體包

4.安裝軟體包

關於安裝,如前面演示的一樣你只需要執行apt-get install <軟體包名>即可,除了這一點,你還應該掌握的是如何重新安裝軟體包。 很多時候我們需要重新安裝一個軟體包,比如你的系統被破壞,或者一些錯誤的配置導致軟體無法正常工作。

你可以使用如下方式重新安裝:

$ sudo apt-get --reinstall install w3m

另一個你需要掌握的是,如何在不知道軟體包完整名的時候進行安裝。通常我們是使用Tab鍵補全軟體包名,後面會介紹更好的方法來搜尋軟體包。有時候你需要同時安裝多個軟體包,你還可以使用正則表示式匹配軟體包名進行批量安裝。

5.軟體升級

# 更新軟體源
$ sudo apt-get update
# 升級沒有依賴問題的軟體包
$ sudo apt-get upgrade
# 升級並解決依賴關係
$ sudo apt-get dist-upgrade

6.解除安裝軟體

如果你現在覺得 w3m 這個軟體不合自己的胃口,或者是找到了更好的,你需要解除安裝它,那麼簡單!同樣是一個命令加回車 sudo apt-get remove w3m ,系統會有一個確認的操作,之後這個軟體便“滾蛋了”。

或者,你可以執行

# 不保留配置檔案的移除
$ sudo apt-get purge w3m
# 或者 sudo apt-get --purge remove
# 移除不再需要的被依賴的軟體包
$ sudo apt-get autoremove

7.軟體搜尋

當自己剛知道了一個軟體,想下載使用,需要確認軟體倉庫裡面有沒有,就需要用到搜尋功能了,命令如下:

sudo apt-cache search softname1 softname2 softname3……

apt-cache 命令則是針對本地資料進行相關操作的工具,search 顧名思義在本地的資料庫中尋找有關 softname1 softname2 …… 相關軟體的資訊。現在我們試試搜尋一下之前我們安裝的軟體 w3m ,如圖:

結果顯示了4個 w3m 相關的軟體,並且有相關軟體的簡介。

關於線上安裝的的內容我們就介紹這麼多,想了解更多關於APT的內容,你可以參考:

三、使用 dpkg 從本地磁碟安裝 deb 軟體包

1.dpkg 介紹

dpkg 是 Debian 軟體包管理器的基礎,它被伊恩·默多克創建於 1993 年。dpkg 與 RPM 十分相似,同樣被用於安裝、解除安裝和供給和 .deb 軟體包相關的資訊。

dpkg 本身是一個底層的工具。上層的工具,像是 APT,被用於從遠端獲取軟體包以及處理複雜的軟體包關係。"dpkg"是"Debian Package"的簡寫。

我們經常可以在網路上簡單以deb形式打包的軟體包,就需要使用dpkg命令來安裝。

dpkg常用引數介紹:

引數 說明
-i 安裝指定deb包
-R 後面加上目錄名,用於安裝該目錄下的所有deb安裝包
-r remove,移除某個已安裝的軟體包
-I 顯示deb包檔案的資訊
-s 顯示已安裝軟體的資訊
-S 搜尋已安裝的軟體包
-L 顯示已安裝軟體包的目錄資訊

2.使用dpkg安裝deb軟體包

我們先使用apt-get加上-d引數只下載不安裝,下載emacs編輯器的deb包,下載完成後,我們可以檢視/var/cache/apt/archives/目錄下的內容,如下圖:

然後我們將第一個deb拷貝到home目錄下,並使用dpkg安裝

$ cp /var/cache/apt/archives/emacs24_24.3+1-4ubuntu1_amd64.deb ~
# 安裝之前參看deb包的資訊
$ sudo dpkg -I emacs24_24.3+1-4ubuntu1_amd64.deb

如你所見,這個包還額外依賴了一些軟體包,這意味著,如果主機目前沒有這些被依賴的軟體包,直接使用dpkg安裝可能會存在一些問題,因為dpkg並不能為你解決依賴關係。

# 使用dpkg安裝
$ sudo dpkg -i emacs24_24.3+1-4ubuntu1_amd64.deb

跟前面預料的一樣,這裡你可能出現了一些錯誤:

我們將如何解決這個錯誤了,這就要用到apt-get了,使用它的-f引數了,修復依賴關係的安裝

$ sudo apt-get -f install

沒有任何錯誤,這樣我們就安裝成功了,然後你可以執行emacs程式

3.檢視已安裝軟體包的安裝目錄

如果你依然在糾結到底linux將軟體安裝到了什麼地方,那麼很幸運你將可以通過dpkg找到答案

使用dpkg -L檢視deb包目錄資訊

$ sudo dpkg -L emacs

dpkg還有一些其他的引數,這裡將作為練習題由你自己來學習

四、從二進位制包安裝

二進位制包的安裝比較簡單,我們需要做的只是將從網路上下載的二進位制包解壓後放到合適的目錄,然後將包含可執行的主程式檔案的目錄新增進PATH環境變數即可,如果你不知道該放到什麼位置,請重新複習第四節關於 Linux 目錄結構的內容。

作業

這一節是本課程的最後一節,所以這裡我們給大家介紹一個很有趣的命令。

安裝:

$ sudo apt-get install bb