本篇部落格的内容都來自Linuxcast.net的linux學習視訊,這是自己整理的學習筆記,分享出來大家一起學習,并且這也是我第一次寫部落格,有什麼問題請不吝賜教,在這裡不勝感激。
這篇的内容偏向于理論,沒有實踐操作,後續可能會進行補充。
Linux中的軟體包管理有三種形式,源代碼形式,RPM軟體包,YUM軟體包
源代碼形式
絕大數開源軟體以源代碼的形式釋出;源代碼一般會打包成tar.gz的歸檔壓縮檔案;程式源代碼需要編譯成為二進制形式後才能夠有使用。
源代碼基本編譯流程:
1. ./configure 檢查編譯環境,相關庫檔案以及配置參數并且生成makefile
2. make 對源代碼進行編譯,生成可執行檔案
3. make install 将生成的可執行檔案安裝到目前計算機中
優點:
1.使用源代碼形式,編譯出來的軟體就是針對某個平台的,相容性好。
2.可在編譯之前進行某些配置,可控性好。
适用于所有系統,可定制
缺點:
使用起來麻煩,源代碼之間有大量的依賴關系,也就是說一個開源軟體可能會使用到其他開源軟體的功能,在安裝時可能需要先安裝所依賴的開源軟體;
編譯時間長,極易出現錯誤。
RPM軟體包管理
RPM:redhatPackage Manager,由ErikTroan和MarcEwing開發
RPM通過将源代碼基于特定平台系統便以為可執行檔案,并且儲存相應的依賴關系
設計目标:使用簡單;使用單一軟體封包件釋出(.rpm);可更新;追蹤軟體依賴關系;基本資訊查詢;軟體驗證功能呢;支援多平台
未能解決的問題:可以追蹤軟體依賴關系,但不能自己解決
無法解決跨平台問題,也就是說不同的平台需要編譯出不同的RPM包
RPM基礎指令:
rpm -i software.rpm 安裝軟體
rpm -e software 解除安裝軟體
rpm -U software-new.rpm 更新形式安裝
rpm支援通過http,ftp協定安裝軟體: rpm -ivh http://www.xxxxx.com
可加入如下參數:-v 顯示相應資訊 ; -h 顯示進度條
RPM查詢:
rpm -qa 列出這個作業系統當中安裝的所有的rpm軟體
rpm -qi packagename 可查詢該軟體的所有資訊
rpm -qf filename 查詢目标檔案屬于哪個rpm包
rpm -ql packagename 查詢指定已安裝rpm軟體包含的檔案
rpm -qip software.rpm 查詢rpm檔案的資訊
rpm -qlp software.rpm 查詢rpm檔案包含的檔案
RPM驗證:
軟體在傳播的過程中可能會被惡意的修改,是以為來安全起見系統中都會對軟體加入驗證功能。驗證一般使用非對稱加密算法,是以需要一個密鑰
導入密鑰:
rpm --importRPM-GPG-KEY-CentOS-6(每個發行版本都有自己的密鑰)
驗證rpm檔案: rpm -K software
驗證已安裝的軟體: rpm -V software(用于查詢作業系統中的某些檔案是否在安裝後被修改過)
YUM
YUM:YellowdogUpdater,Modified,是一個RPM的前端程式,目的是設計用于自動解決RPM的依賴關系問題。也就是用來管理RPM包的
特點:
自動解決依賴關系
可對RPM進行分組,并基于組進行安裝操作
引入倉庫概念,支援多個倉庫
配置簡單
YUM引入倉庫(repo)的概念,倉庫用來存放所有現有的rpm軟體包
當用yum安裝一個rpm軟體時,如果存在依賴關系,會自動在倉庫中查找依賴關系并且安裝。倉庫可以是本地的,也可以是通過HTTP,FTP或NFS形式集中的網絡倉庫。
YUM倉庫:
yum倉庫用于儲存管理rpm軟體包,倉庫的配置檔案儲存在/etc/yum.repos.d/目錄下:
格式:
[base]
name=CentOS-$releasever- Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
解釋:[xxx]倉庫的名稱;name 倉庫的基本資訊;baseurl 倉庫的基本路徑,有時候也會用mirrorlist,用于動态地擷取baseurl;gpgcheck 用于是否打開校驗;如果沒有 enabled屬性,則預設是開啟的,也就是值為1
yum配置檔案必須以.repo結尾;一個配置檔案内可以包含多個倉庫的配置資訊;/etc/yum.repos.d/可以儲存多個配置檔案
YUM基本指令:
yum install softwarename 安裝指定檔案(這裡實際上是安裝rpm軟體包)
yum remove softwarename 解除安裝指定檔案
yum update softwarename 更新指定檔案
YUM查詢:
yum search keyword 搜尋,基于關鍵字的
yum list (all | installed | recent | updates) 列出全部的,已安裝的,最近的,軟體更新;其中,installed會顯示出已經安裝的軟體,并且以安裝的軟體前面會加上一個“@”符号
yum info packagename 顯示制定軟體的資訊
yum whatprovides filename 查詢哪個rpm軟體包包含目标檔案
建立YUM倉庫
手工建立:
1.将所有的rpm檔案拷貝到一個檔案夾中
2.通過rpm指令手工安裝createrepo軟體:rpm -ivhcreaterepo.xxx,這個也可以用yum直接安裝
3. 運作指令createrepo -v /rpm-directory(yum倉庫的絕對路徑,建立好後會出現repodata檔案夾)
4.如果有分組資訊,則在運作指令的時候使用-g參數自定分組檔案
createrepo -g/tmp/*comps.xml /rpm-directory
建立好後,本機可以通過file方式直接使用,如果需要作為對外的YUM倉庫伺服器,可以通過HTTP,FTP或NFS協定共享出去
倉庫建立好後,需要在/etc/yum.repos.d/中添加一個配置檔案,将它指向建立的倉庫:
vim myrepo.repo
[myrepo]
name=MyRepo
baseurl=file://建立的倉庫的絕對路徑
gpgcheck=1
enabled=1
建立完成後需要使用yum clean all 來清楚緩存資訊。