linux學習筆記(實驗樓) 實驗14 linux下軟件安裝

一、實驗介紹

1.1 實驗內容

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

1.2 實驗知識點

通常 Linux 上的軟件安裝主要有四種方式:

  • 在線安裝

  • 從磁盤安裝deb軟件包

  • 從二進制軟件包安裝

  • 從源代碼編譯安裝

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

 

 

二、開始

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

提醒:非會員用戶不能鏈接外網,若在線安裝的軟件需從外網下載資源將無法成功安裝。

 

2.1 先體驗一下

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

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

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

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

 

2.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 能正常的工作。

 

2.3 apt-get

apt-get 是用於處理 apt包的公用程序集,我們可以用它來在線安裝、卸載和升級軟件包等,下面列出一些apt-get包含的常用的一些工具:

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

 

2.4安裝軟件包

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

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

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

 

2.5軟件包升級

 

2.6卸載軟件

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

或者,你可以執行

 

2.7軟件搜索

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

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

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

 

 

三、使用dpkg

本節講解如何使用 dpkg 從本地磁盤安裝 deb 軟件包。

 

3.1dpkg介紹

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

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

我們經常可以在網絡上見到以deb (deb包在Linux操作系統中類似於windows中的軟件包(exe))形式打包的軟件包,就需要使用dpkg命令來安裝。

dpkg常用參數介紹:

 

3.2使用dpkg安裝deb軟件包

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

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

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

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

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

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

 

3.3查看已安裝軟件包的安裝目錄

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

使用dpkg -L查看deb包目錄信息

dpkg還有一些其他的參數,這裏將作爲練習題由你自己來學習

 

 

四、從二進制包安裝

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