Linux程序包管理
API:Application Program Interface
ABI:Application Binary Interface
Unix-like,
ELF
Windows
exe,msl
庫級別的虛擬化;
Linux:WinE
Windows:Cywin
系統級開發:
C/C++: http, vsftpd,nginx
go
應用級開發:
java/Python/perl/ruby/php:
java:hadoop,hbase,(jvm)
Python:openstack,(pvm)
perl:(perl)
ruby:(ruby)
php:(php)
程序格式:
源代碼:文本格式的程序代碼:
編譯開發環境:編譯器,頭文件,開發庫
二進制格式:文本格式的程序代碼–>編譯器–>二進制格式(二進制程序,庫文件、配置文件、幫助文件)
java/python程序格式:
源代碼:編譯成能夠在其虛擬機(jvm/pvm)運行的格式;
開發環境:編譯器、開發庫
二進制
項目構建工具:
c/c++:make
java:maven
程序報管理器:
源代碼–>目標二進制格式–>組織成為一個或有限幾個”包“文件;
安裝、升級、卸載、查詢、校驗
程序包管理器:
debian:dpt, dpkg, ".deb"
redhat: redhat package manager簡稱rpm, ”.rpm"
S.u.S.E:rpm, ".rpm"
Gentoo: ports
Archlinux:
源代碼:name-VERSION.tar,gz
VERSION: major.minor.release
rpm包名格式:
name-VERSION-release.arch.rpm
VERSION: major.minor.release
release.arch: rpm報的發行號
release.os: 2.el7.i386.rpm
rchetecture: i386,x64(amd64),ppc,noarch
redis-3.0-1.centos7.x64.rpm<–redis-3.0.2.targz
拆包:主包和支包
主包:name-VERSION-release.arch.rpm
支包:name-function-VERSION-release.arch.rpm
function:devel,utils,libs….
依賴關系:
x, y, z
x–>y,z
y–>A,B,C
C–>y
前端工具:自動解決依賴關系;
yum:rhel系列系統上rpm包管理器的前端工具;
apt-get (apt-cache):deb包管理的前端工具;
zypper: suse的rpm管理器前端工具;
dnf: Fedora 22+系統上rpm包管理器的前端工具;
程序包理器:
功能:將編譯好的應用程序的個組成文件打包成一個或幾個程序包文件,從而更方便地實現程序包的安裝,升級,卸載和查詢等管理操作;
1、程序包的組成清單(每個程序報都單獨實現);
文件清單
安裝和卸載是運行的腳本
2、數據庫(公共)
程序報的名稱和版本;
依賴關系;
功能說明;
安裝生成各文件的路徑及校驗碼信息;
等等
/var/lib/rpm/
獲取程序報的途徑:
(1)系統發行版的光盤或官方的文件服務器(或鏡像站點):
http://mirrors.aliyun.com
http://mirrors.163.com
(2)項目的官方站點
(3)第三方組織:
(a)EPEL
(b)搜索引擎
(4)自動動手,豐衣足食
建議:檢查其合法性
來源合法性;
程序包的完整性;
CentOS系統刪rpm命令管理程序包:
安裝,升級,卸載,查詢和校驗,數據庫維護
rpm命令:rpm [OPTIONS] [PACHAGE-]
安裝:-i.–freshen
升級:-u,–update,-F,–freshen
卸載:-e, –erase
查詢:-q'–query
校驗:-V,–verify
數據庫維護:–builddb, –initdb
安裝:rpm{-i |–install-options] PACKAGE-FILE…
rpm
GENERAL OPTIONS:
-v: verbose,詳細信息
-vv:更詳細的輸出
[install-options]:
-h: hash marks輸出進度條;每個#表示2%的進度;
–test: 測試安裝,檢查并報告依賴關系及沖突消息等;
–replacepkgs: 重新安裝
注意:rpm可用自帶腳本:
四類:
preinstall:安裝過程開始之前運行的腳本,%pre
postinstall:安裝過程完成之后運行的腳本,%post
preuninstall:卸載過程真正開始執行之前運行的腳本%postun,–nopostun]
–nosignature: 不檢查包簽名信息,不檢查來源合法性;
–nodigest: 不檢查包完整信息;
原創文章,作者:shadow,如若轉載,請注明出處:http://www.www58058.com/65391