軟件包和包管理器
軟件包介紹
開源軟件最初只提供了.tar.gz的打包的源碼文件,用戶必須自已編譯每個想在GNU/Linux上運行的軟件。用戶急需系統能提供一種更加便利的方法來管理這些軟件,當Debian誕生時,這樣一個管理工具dpkg也就應運而生,可用來管理deb后綴的"包"文件。從而著名的“package”概念第一次出現在GNU/Linux系統中,稍后Red Hat才開發自己的rpm包管理系統
軟件包中的文件分類
- 二進制文件
- 庫文件
- 配置文件
- 幫助文件
范例:利用 cpio工具查看包文件列表
rpm2cpio 包文件|cpio –itv 預覽包內文件
rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件
程序包管理器
軟件包管理器功能:
將編譯好的應用程序的各組成文件打包一個或幾個程序包文件,利用包管理器可以方便快捷地實現程序包的安裝、卸載、查詢、升級和校驗等管理操作
主流的程序包管理器
- redhat:rpm文件, rpm 包管理器,rpm:Redhat Package Manager,RPM Package Manager
- debian:deb文件, dpkg 包管理器
包命名
源代碼打包文件命名:
name-VERSION.tar.gz|bz2|xz
VERSION: major.minor.release
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-4.2.46-19.el7.x86_64.rpm
bash-4.4.19-7.el8.x86_64.rpm
bash-4.4.19-7.el8.aarch64.rpm
bash-4.4.19-7.el8.ppc64le.rpm
bc_1.07.1-2_amd64.deb
bc_1.07.1-2_s390x.deb
范例:統計rpm的架構類型及相應的包數量
[root@centos8 Packages]#pwd
/misc/cd/BaseOS/Packages
[root@centos8 Packages]#ls *.rpm | grep -Eo '[^.]+\.rpm$'| grep -Eo '^[^.]+'|sort |uniq -c
389 i686
211 noarch
1061 x86_64
[root@centos8 Packages]#ls *.rpm |rev|cut -d. -f2|rev |sort |uniq -c
389 i686
211 noarch
1061 x86_64
[root@centos8 Packages]#ls *.rpm | grep -Eo '[^.]+\.rpm$'|cut -d. -f1|sort |uniq -c
389 i686
211 noarch
1061 x86_64
分類和拆包
軟件包為了管理和使用的便利,會將一個大的軟件分類,放在不同的子包中。
包的分類
- Application-VERSION-ARCH.rpm: 主包
- Application-devel-VERSION-ARCH.rpm 開發子包
- Application-utils-VERSION-ARHC.rpm 其它子包
- Application-libs-VERSION-ARHC.rpm 其它子包
包的依賴
軟件包之間可能存在依賴關系,甚至循環依賴,即:A包依賴B包,B包依賴C包,C包依賴A包
安裝軟件包時,會因為缺少依賴的包,而導致安裝包失敗。
解決依賴包管理工具:
- yum:rpm包管理器的前端工具
- dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS 8 版代替 yum
- apt:deb包管理器前端工具
- zypper:suse上的rpm前端管理工具
程序包管理器相關文件
- 包文件組成 (每個包獨有)
- 包內的文件
- 元數據,如:包的名稱,版本,依賴性,描述等
- 可能會有包安裝或卸載時運行的腳本
- 數據庫(公共):/var/lib/rpm
- 程序包名稱及版本
- 依賴關系
- 功能說明
- 包安裝后生成的各文件路徑及校驗碼信息
獲取程序包的途徑
軟件包需要事先將源碼進行編譯后打包形成,獲取包的途徑如下:
系統發版的光盤或官方網站
CentOS鏡像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
Ubuntu 鏡像:
http://cdimage.ubuntu.com/releases/
http://releases.ubuntu.com
第三方組織提供
-
Fedora-EPEL:Extra Packages for Enterprise Linux
https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel/?spm=a2c6h.13651104.0.0.3bc47dfaZpesAr
- Rpmforge:官網:http://repoforge.org/, RHEL推薦,包很全,即將關閉
- Community Enterprise Linux Repository:http://www.elrepo.org,支持最新的內核和硬件相關包
軟件項目官方站點
http://yum.mariadb.org/10.4/centos8-amd64/rpms/
http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/
搜索引擎
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/
注意:第三方包建議要檢查其合法性,來源合法性,程序包的完整性
自己制作
將源碼文件,利用工具,如:rpmbuild,fpm等工具制作成rpm包文件
本文鏈接:http://www.thecarconnectin.com/33901.html
網友評論comments