[華為云在線課程][Linux平臺軟件包安裝與管理][第二章軟件包和包管理器][學習筆記]
軟件包介紹

開源軟件最初只提供了.tar.gz的打包的源碼文件,用戶必須自己編譯每個想在GNU/Linux上運行的軟件。用戶急需系統(tǒng)能提供一種更加便利的方法來管理這些軟件。當Debian誕生時,這樣一個管理工具dpkg也就應運而生,可用來管理deb后綴的"包"文件。從而著名的"package"概念第一次出現(xiàn)在GNU/Linux系統(tǒng)中,稍后Red Hat才開發(fā)自己的rpm包管理系統(tǒng)。
軟件包中的文件分類
二進制文件
庫文件
配置文件
幫助文件
例子:利用cpio工具查看包文件列表
rpm2cpio 包文件|cpio -itv 預覽包內(nèi)文件 rpm2cpio 包文件|cpio -id "*.conf" 釋放包內(nèi)文件
程序包管理器
軟件包管理器功能:將編譯好的應用程序的各組成文件打包一個或幾個程序包文件,利用包管理器可以方便快捷地實現(xiàn)程序包地安裝、卸載、查詢、升級和校驗等管理操作。
主流的程序包管理器
RedHat:rpm文件,rpm包管理器,rpm:RedHat Package Manager,RPM Package Manager
Debian:deb文件,dpkg包管理器
包命名
源代碼打包文件命名:
name-VERSION.tar.gz|bz2|xz VERSION:major.minor.release
例子:Linux最新內(nèi)核的C源碼的行數(shù)
#tar xvf linux-5.7.2.tar.gz #cd linux-5.7.2/ #for file in `find -name "*.c"`;do line=`cat $file|wc -l`;let sum+=line;done;echo $sum #cat `find -name "*.c"` |wc -l #find -name "*.c" | xargs cat |wc -l
rpm包命名方式:
name-VERSION-release.arch.rpm VERSION:major.minor.release release:release.OS
常見的arch:
x86:i386,i486,i586,i686
x86_64:x64,x86_64,amd64
powerpc:ppc
跟平臺無關:noarch
例子:
bash-3.2-32.el5_9.1.i386.rpm bash-3.2-32.el5_9.1.x86_64.rpm
例子:統(tǒng)計rpm的架構類型及相應的包數(shù)量
#cd BaseOS/Packages #ls *.rpm |rev|cut -d. -f2|rev |sort |uniq -c #ls *.rpm | grep -Eo '[^.]+\.rpm$' | grep -Eo '^[^.]+'|sort |uniq -c #ls *.rpm | grep -Eo '[^.]+\.rpm$' | cut -d. -f1|sort |uniq -c
分類和拆包
軟件包為了管理和使用的便利,會將一個大的軟件分類,放在不同的子包中。
包的分類
Application-VERSION-ARCH.rpm:主包
Application-devel-VERSION-ARCH.rpm 開發(fā)子包
Application-utils-VERSION-ARCH.rpm 其他子包
Application-libs-VERSION-ARCH.rpm 其他子包
包的依賴
軟件包之間可能存在依賴關系,甚至循環(huán)關系,即:A包依賴B包,B包依賴C包,C包依賴A包
安裝軟件包時,會因為缺少依賴的包,而導致安裝包失敗
解決依賴包管理工具:
yum:rpm包管理器的前端工具
dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS8版替代yum
apt:deb包管理器前端工具
zypper:suse上的rpm前端管理工具
程序包管理器相關文件
包文件組成(每個包獨有)
包內(nèi)的文件
元數(shù)據(jù),如:包的名稱,版本,依賴性,描述等
可能會有包安裝或卸載時運行的腳本
數(shù)據(jù)庫(公共):/var/lib/rpm
程序包名稱及版本
依賴關系
功能說明
包安裝后生成的各種文件路徑及校驗碼信息
獲取程序包的途徑
軟件包需要事先將源碼進行編譯后打包形成,獲取包的途徑如下:
系統(tǒng)發(fā)行版的光盤或官方網(wǎng)站
CentOS鏡像:
https://www.centos.org/download/
https://mirrors.aliyun.com
https://mirrors.huaweicloud.com/
https://mirror.tuna.tsinghua.edu.cn/
http://mirrors.sohu.com
http://mirrors.163.com
Ubuntu鏡像:
http://cdimage.ubuntu.com/releases/
http://release.ubuntu.com
第三方組織提供
Fedora-EPEL:Extra Packages for Enterprise Linux
https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel/
Rpmforge:官網(wǎng):http://repoforge.org/, RHEL推薦,白很全,即將關閉
Community Enterprise Linux Repository:http://www.elrepo.org,支持最新的內(nèi)核和硬件相關包
軟件項目官方站點
http://yum.mariadb.org/
http://repo.mysql.com/yum/
搜索引擎
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
http://sourceforge.net
注意:第三方包建議要檢查其合法性,來源合法性,程序包的完整性
自己制作
將源碼文件,利用工具,如:rpmbuild,fpm等工具值作成rpm包文件
Linux
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。