## RPM(Red Hat Package Manager)
- 系統中存在著一個關于RPM的數據庫,它記錄了安裝包以及包與包之間的依賴關系。
- RPM包是預先在Linux機器上編譯并打包的文件,安裝非常快捷;但它也有一些缺點:
- 安裝環境必須與編譯時的環境一致或者相當;
- 包與包之間存在著相互依賴的情況下,卸載某個包時,需要先把系統里所有依賴該包的包進行卸載;雖然也可忽略依賴關系進行強制刪除,但這樣就會導致異常情況的發生。
- 安裝RPM包使用命令`rpm -ivh filename`,其中:
- `-i`,表示安裝;
- `-v`,表示可視化;
- `-h`,表示顯示安裝進度;
- 升級RPM包使用命令`rpm -Uvh filename`,其中的`-U`就表示升級。
- 查詢rpm包:
- 查詢是否已安裝某個包使用命令`rpm -q packagename`,如`rpm -q zip`。另外,我們可以通過`rpm -qa`的命令來查詢系統中所有已安裝的包,并通過`grep`等方式進行二次搜索,如`rpm -qa | grep zip`。
- 查詢某個已安裝的RPM包的詳情:`rpm -qi packagename`,可得到版本號、安裝時間、簡介等信息。
- 卸載RPM包使用命令為`rpm -e packagename`。
## yum 工具
- Yum(Yellow dog Updater,Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
- 列出所有可用的RPM包:`yum list`,由于數量眾多,我們一般會進行二次搜索、篩選,如`yum list | grep zip | head -n 5`;此命令列出的信息里,主要有以下三列:
- 第一列是包名,含平臺信息。
- 第二列是最新版本號。
- 第三列是安裝信息,如果已安裝,則顯示`@base`或`@anaconda`;如果未安裝則顯示`base`或`anaconda`;如果已安裝但已有更新版本,則顯示`updates`。
- 搜索RPM包的命令是`yum search str`,如`yun search zip`。
- 安裝RPM包的命令是`yum install -y packagename`,如`yun install -y zip`,需要注意的是,雖然不加`-y`也是可以正常安裝RPM包的,但是不加`-y`的話,如果該RPM包有依賴的包,就會一個一個輪流詢問用戶是否需要安裝,那樣子就太繁瑣了,不如就加個`-y`全部默認安裝,這也正是 yum 的一大特點嘛。
- 卸載RPM包的命令為`yum remove -y packagename`,加`-y`的原因同`yum install`。
- 升級RPM包的命令為`yum update -y packagename`,加`-y`的原因同`yum install`;另有`yum upgrade -y packagename`,作用與`yum update`類似都是更新本地系統里的該RPM包,不同在于`yum update`會先去更新軟件支持列表(也稱RPM源)。
## 安裝源碼包
安裝源碼包有3個主要步驟,分別是`./configure`、`make`、`make install`。
### 前置工作
安裝源碼包除了上述3個主要步驟,我們還需要前期的一些準備工作:
- 在官方站點下載源碼包,并且基于約定俗成,把源碼包放到`/usr/local/src`目錄。
- 視源碼包格式而定,挑選壓縮工具進行解壓。
### ./configure
這一步驟的主要作用就在于:
- 定制軟件安裝的功能/配置;
- 檢查系統環境以及是否具有編譯該源碼包所需要的庫;
- 生成 Makefile 文件;
關于軟件可定制的功能/配置,我們可以通過命令`./configure --help`來進行查看,此時實際上并不會真的執行`./configure`,而是顯示一個幫助文檔。
最常用的可配置項莫過于`--prefix`,該配置項的意思是定義軟件包的安裝路徑。
在確定好所有配置項后,我們可以執行形如以下的命令:`./configure --prefix=/usr/local/appache2`,此時就開始檢測安裝環境了,如果有問題,按照提示信息操作(如安裝缺失了的庫/包)即可。
如果執行成功,則可看到已生成了`Makefile`;另外也可以執行`echo $?`來驗證操作結果,如果結果是0說明執行成功,否則就沒有成功。
### make
生成`Makefile`后,需要進行編譯,執行命令`make`,執行后,同樣可用`echo $?`來驗證操作結果。
### make install
通過`make`成功編譯后,我們就可以執行安裝了,命令為`make install`,執行后,同樣可用`echo $?`來驗證操作結果。
到此,該源碼包便已安裝完成了。