1.RPM,Redhat Package Manager。是Redhat和CentOS等Linux系統上常見的軟件安裝工具。
軟件安裝:
常見選項
-i #install,安裝 -v #詳細信息 -vv #更加詳細的信息 -h #顯示進度條,一個#表示2% --test #測試安裝,但不是真正執行安裝,dry run 模式 --nodeps #忽略依賴關系 --replacepkgs #重新安裝 --nodigest #不檢查完整性 --nosignature #不檢驗來源
軟件升級:
rpm {U|--upgrade} [install-options] package_file... rpm {F|--freshen} [install-options] package_file... upgrade #系統已經安裝了舊版程序的,則升級;沒有安裝過程序的,則安裝。 freshen #系統已經安裝了舊版程序的,則升級;沒有安裝過程序的,不安裝。 --oldpackage #降級 --force #強制升級
軟件卸載:
-e #earse,卸載
rpm安裝的常見選項配搭是ivh。加上v和h是為了更加美觀,和能夠看安裝狀況。
但是我們可以看見rpm在卸載和安裝的時候,有時候會由于依賴關系而安裝失敗。
而且這些依賴關系要安裝軟件的人手動解決,如果依賴關系真是費時費力。
所以在安裝軟件的時候,可以選擇自動解決依賴關系的yum。
軟件查詢 Query
rpm {-q|--query} [select-option] [query-option] 一般選項: -a #列出所有系統安裝了的包 -f #根據文件查詢指定文件是由哪一個包 安裝而來 -p #查詢未安裝的包所提供的文件 [query-option]#特定選項 -i #information,查看包的介紹信息 -c #configfile,查看提供的配置文件 -d #doc,程序軟件提供的幫助文檔類文件 -l #查看指定程序包安裝后生成的所有文件 -R #查詢指定程序包所依賴的CAPABILITY --scripts #查看程序包所帶的四種腳本 --provides #列出程序包所提供的功能(capability)
常見組合: qf、qi、qc
我們可以通過-qf選項來查找出命令 是由什么包安裝而來。
接著,我們也可以使用命令引用,把-qf輸出的包名輸出,再給-qi來查詢包的詳細信息
而-qc和-qd選項則可以只輸出這個包中的配置文件,和幫助文檔。
-R選項,則是Require的縮寫。具體是列出包所依賴的功能(capability),具體也就是一些模塊或者其他的軟件。
大概是用來解決依賴關系,但是后來的yum由于可以通過repodata文件來自動分析,所以現在一般很少用。
而–provides選項則用來輸出這個包提供了一些什么模塊,或者功能(capability)。
由于coreutils提供的是一些主要的常用軟件,所以能看見提供了很多命令。
假如我們查詢的是一個沒有安裝過的包,也就是特定路徑下的rpm包,要使用-i,-c,-d,則需要配合-p選項。如,-qpi
2.yum文件包管理 Yellowdog Update Modifier
yum安裝軟件的優勢
yum會從yum源中獲取文件列表和依賴關系。
每一次創建cache的時候都會請求文件列表的校驗碼,來識別軟件包是否有更新(repodata.xml)
配置文件
/etc/yum.conf #為所有倉庫提供公共配置 /etc/yum.repos.d/*.repo #為倉庫的指向提供配置
yum repository:yum repo yum倉庫
儲存了眾多rpm包,以及包的相關的元數據文件。而yum的配置文件*.repo必須指向repodata目錄中repodata.xml所在的地方。
列出當前系統中所有資源庫:
yum repolist
如何自己手動指定一個yum源?
在/etc/yum.repos.d/創建一個以repo結尾的文件就可以!
假如已經自帶的Base文件已經失效,可以在/etc/yum.repos.d/下面隨便創建一個文件夾。
然后把原有的repo都復制到里面去,那么系統自帶的倉庫就都讀不到了。
repo文件的格式。
這里最主要的是baseurl這個地址,因為這個地址指向服務器repodata文件。
其次name字段則是在初始化倉庫的時候顯示的名字。
當gpgcheck為0的時候,gpgkey也就不用添加也可以了。
而且enable的默認選項是1,0則表示不啟用。
我們可以初始化之后列出的倉庫多了一個Mirror_aliyun
看到配置文件的中括號里的內容對應repoid,name字段則對應repo name。
為了提高通用性,repo提供一些變量$basearch以$releasever,
分別表示系統架構以及發行版本,也就是CentOS7的7,以及x86_64.
完成了yum源的配置之后,我們就可以查看或者安裝軟件了。
yum的info子命令,類似于rpm -qi,同樣輸出包的信息。
執行yum install httpd
自動解決軟件包之間的依賴關系
3.編譯安裝(CentOS6上)
前期的準備;
首先要安裝編譯的環境
yum groupinstall "Development Tools" "Desktop Platform Development"
然后要獲得源碼包,可以通過wget等方式下載到源碼包。
然后解壓得到的壓縮包,并且切換到源碼的目錄里面
編譯的三大步驟:
(1) ./configure
#這個腳本主要用于檢查各種指定特性所依賴的外部文件
#配合各種選項,可以啟用特性和調整軟件的安裝路徑等。
示例:編譯httpd2.2
./configure --prefix=/usr/local/apache --sysconf=/etc/httpd2.2 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
./configure檢查期間,假如報錯,可能是一些依賴的devel包沒有裝。
裝上特性所依賴的包之后,再執行一次./configure腳本也是沒有問題的。
(2)make
在./configure文件檢查沒有問題之后,執行make。就會自動地編譯。
(3)make install
make install命令實際上是把已經編譯好的軟件復制到對應位置的一個命令。
所以在三大步驟里面,問題最多的是第一步./configure。
編譯好之后。
-
把軟件添加到PATH變量的路徑中:修改/etc/profile.d/httpd.sh
添加一行:PATH=程序二進制執行文件所在的目錄:$PATH
如,PATH=/usr/local/apache/bin:$PATH
那樣重新開機之后,系統用戶初始化環境的時候就會能在PATH中讀到二進制的文件,而不用每次都是用完全的路徑。
-
添加二進制執行文件所依賴的庫文件 到 需要加載的庫中
系統能順利找到了二進制文件之后,我們還要讓系統能順利找到二進制執行文件所需要的庫
所以我們要在/etc/ld.so.conf.d/目錄下創建一個與軟件同名的conf文件
如,/etc/ld.so.conf.d/httpd.conf
然后再往里面添加一行庫所在的目錄/usr/local/apache/lib,并使用ldconfig來重新生成緩存
3.導入include頭文件
可以選擇復制,或者做軟連接的方式,把include目錄下的文件都復制到/usr/include目錄下
4.導出幫助手冊
最后我們編輯一下/etc/man.conf文件,在里面添加一個MANPATH條目
最后重新登錄一下之后,我們就可以使用apachectl start命令來啟動httpd,并使用ss命令查看使用狀況
使用瀏覽器直接訪問ip的時候,運行成功。
原創文章,作者:菠菜,如若轉載,請注明出處:http://www.www58058.com/13457