天天看點

軟體包的安裝

一、linux系統下的軟體包可分為三種:

 1)源碼(source code)

 2)rpm(基于rpm--redhat package manager,軟體包管理器的rpm軟體包,常用)

 3)dbkg(基于debian的軟體包管理器)

二、軟體包的組成:

 二進制檔案、配置檔案、庫檔案、文檔。

三、軟體包的安裝方式:

 3.1 手動編譯安裝源代碼

 一般就是“三步走”完成源碼的安裝。

 1)./configure --分析安裝平台環境

 在軟體包解壓完畢之後,我們進入源碼目錄,一般都會存在configure和readme這麼兩個檔案,readme詳細的介紹了這個軟體所能完成的功能、授權許可、安裝需求、安裝注意事項、安裝方式等等,是以在安裝軟體前,一定要事先閱讀這個readme檔案,確定安裝的正确性。configure檔案一般是個可執行檔案,可以在目前目錄下直接輸入 “./configure”進行軟體安裝的環境測試.源碼安裝都需要gcc或者cc編譯器.最後測試成功會生成makefile檔案,為下一步使用make編譯做準備。

 2)make --編譯安裝軟體

 make工具最主要的功能就是通過makefile檔案來實作的,makefile檔案是按照某種文法來進行編寫的,檔案中定義了各個源檔案之間的依賴關系,并說明了如何編譯源檔案并生成可執行檔案,它通過描述各個源程式之間的關系讓make工具自動完成編譯工作。

 3)make install --安裝軟體

注:軟體安裝完成後,可能需要導出軟體的庫檔案,改變環境變量,導入man檔案路徑,以及頭檔案。

1、軟體庫檔案導出方法:

a.在/etc/ld.so.conf.d/建立一個以.conf結尾的檔案,并将此程式的庫檔案路徑添加至此檔案中

如/usr/local/apache/lib

b.執行ldconfig,讓系統重新裝載庫檔案;

#ldconfig -v

2、可執行程式路徑的導出方法:

#export path=$path:/usr/local/apache/bin

也可以寫入配置檔案:

 寫入/etc/profile:--對所有使用者生效

 寫入~/.bash_profile--僅對目前使用者生效

3、man檔案路徑導出方法

編輯/etc/man.config檔案,新增加如下一行;

 例如:manpath /usr/local/apache/man 

4、頭檔案導出方法

 建立連結(例如:ln -sv /usr/local/apache/lnclude /usr/include/apache)

 3.2 rpm包方式安裝

 rpm包管理類似于windows下的“添加/删除程式”但是功能卻比“添加/删除程式”強大很多。在linux的系統安裝CD光牒中,有很多以“.rpm” 結尾的軟體包,這些封包件就是我們所說的rpm檔案。每個rpm檔案中包含了已經編譯好的二進制可執行檔案,其實就是将軟體源碼檔案進行編譯安裝,然後進行封裝,就成了rpm檔案,類似與windows安裝包中的“.exe”檔案。

   rpm包管理方式的優點是:安裝簡單友善,因為軟體已經編譯完成打包完畢,安裝隻是個驗證環境和解壓的過程。此外通過rpm方式安裝的軟體,rpm工具都會記錄軟體的安裝資訊,這樣友善了軟體日後的查詢,更新和解除安裝。

 rpm工具的使用分為安裝、查詢、驗證、更新、删除等操作。

 安裝:

  rpm -i /pathrpm_package

  rpm -ivh --nodeps --force

  v;顯示安裝資訊;

  h:以#顯示安裝進度(一個#:2%的進度)

  --nodeps 忽略依賴關系

  --force 強制安裝

 解除安裝:

  rpm -e name --nodeps

 更新:

  rpm -uvh /pathrpm_package

  rpm -fvh /pathrpm_package

   -uvh 老版本的安裝了的就更新安裝,沒安裝就直接安裝新版本

   -fvh 老版本必須的安裝

   --force 強行更新

 查詢:

  rpm -q name--查詢軟體包的版本資訊

  rpm -qa --查詢目前系統上安裝的軟體包 支援檔案名通配

  rpm -qi name --查詢軟體包的描述資訊

  rpm -ql name --查詢軟體包安裝後都生成了那些檔案

  rpm -qc name --查詢軟體的配置檔案所存放的位置

  rpm -qd name --查詢軟體文檔所存放的位置

  rpm -q --scripts name --檢視軟體包安裝時執行的腳本

  rpm -qf filename|path --查詢那個檔案是由那個軟體包安裝生成的

  rpm -q --changelog name --檢視每一次的制作都改進了那些内容

  rpm -qpi name --檢視未安裝軟體包的描述資訊

   -p --檢視未安裝軟體包的資訊

 校驗:

  rpm -v

  屬性:

  s:檔案大小改變

  m:權限,檔案類型改變

  5:md5校驗值改變

  d:裝置的主/次号不比對

  l:路徑發生改變

  u:屬主發生改變

  g:屬組發生改變

  t:最近一次的修改時間發生了變化 

 rpm重建資料庫;

  #rpm --initdb  --重新初始化資料庫,如存在則不覆寫

  #rpm --rebuilddb  --如果存在則覆寫之

  /var/lib/rpm--rpm資料庫

 rpm對軟體包的驗證:

導入公鑰:

 rpm --import path

例如:rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-redhat-release--導入redhat的公鑰。

驗證:

rpm -k[ --nodigest(不驗證md5) --nosignature(不驗證簽名)]name.rpm

另外,基于rpm安裝rpm包還可以利用yum。

yum --yellow dog updater, modified

 主要功能是更友善的添加/删除/更新rpm包。它能自動解決包的倚賴性問題,它能便于管理大量系統的更新問題 。

yum特點

 可以同時配置多個資源庫(repository)

 簡潔的配置檔案(/etc/yum.conf)

 自動解決增加或删除rpm包時遇到的倚賴性問題

 使用友善

 保持與rpm資料庫的一緻性

yum用戶端的配置檔案:

 1、/etc/yum.conf

 2、/etc/yum.repos.d/*.repo

.repo檔案便是定義yum源的檔案。

定義yum源的格式

 [id]

 name=yum源的完整名稱;

 baseurl=yum源的位址(eg:ftp://172.16.0.1/pub/server)

 gpgcheck=0|1(驗證簽名)

 enabled=0|1(是否生效)

yum的使用方法

yum

 list {all|installed|avaliable|updates} --顯示所有已安裝過的軟體的資訊和所有可用軟體的資訊。

 install package_name package_name2 ...--安裝軟體

  -y --不用再确認;

 remove|erase package_name1 package_name2 ...--解除安裝軟體

 update package_name1   --軟體更新

 check-update   --檢查更新

 info --顯示軟體包的摘要資訊

 provides|whatprovides  file|path --顯示檔案是哪個軟體包安裝生成的

 downgrade pacage_name1...  --降級

 reinstall package_name1 ... --重裝軟體包

 repolist [all|enabled|disabled]  --顯示yum源

 clean {all}--清空yum緩存

 grouplist --顯示軟體包組

 groupinstall "groupname" --安裝一組軟體(!!組名中間有空格必須用引号引起來)

 groupremove "groupname"  --解除安裝一組軟體

 groupinfo "groupname" --檢視有關組的資訊

 localinstall /path-rpm_file  --本地安裝軟體

  --nogpgcheck (不檢測簽名)

 localupdate --本地更新軟體

 search keyword --根據關鍵字搜尋軟體

建立yum源

yum源的中繼資料檔案目錄:

 primary.xml.gz --每一個rpm包的檔案名,及軟體包之間的依賴關系

 filelists.xml.gz 此yum源中每一個rpm包中檔案的檔案相關資訊

 other.xml.gz  額外資訊,比如changelog等

 repomd.xml:定義了以上三個檔案的校驗碼和時間戳

 comps-*.xml(comps-rhel5-server-core.xml):定義了軟體包的分組資訊

#createrepo path

 -g 建立關于軟體包的分組資訊

 -q 工作于靜默模式下

 -v 顯示詳細資訊

總結:源碼安裝,可以根據需求自定義安裝軟體,缺點是安裝的軟體難于維護,解除安裝,更新。利用rpm,yum安裝軟體,安裝簡單,便于維護。缺點是軟體的編譯不是根據本機的硬體所編譯的,是以不會很好的發揮機器本身的性能。

繼續閱讀