Linux第11天:(08月17日)Linux軟件包管理rpm

Linux 第11天: (08月17日) Linux軟件包管理rpm

十余年的鹽都網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鹽都建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“鹽都網(wǎng)站設(shè)計(jì)”,“鹽都網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

 

 

 

 

 

軟件運(yùn)行環(huán)境


API:Application Programming Interface
POSIX:Portable OS


程序源代碼--> 預(yù)處理--> 編譯--> 匯編--> 鏈接
靜態(tài)編譯:
共享編譯:.so


ABI:Application Binary Interface
Windows與Linux不兼容
ELF(Executable and Linkable Format)
PE(Portable Executable)


庫(kù)級(jí)別的虛擬化:
Linux: WINE
Windows: Cywin


開發(fā)語(yǔ)言


系統(tǒng)級(jí)開發(fā)
C
C++


應(yīng)用級(jí)開發(fā)
java
delphi
Python
go
php
perl
ruby

 

包管理器


二進(jìn)制應(yīng)用程序的組成部分:
二進(jìn)制文件、庫(kù)文件、配置文件、幫助文件


程序包管理器:


debian:deb文件, dpkg包管理器
redhat: rpm文件, rpm包管理器
rpm: RedhatPackage Manager
RPM Package Manager

 

包命名


源代碼:name-VERSION.tar.gz|bz2|xz
VERSION: major.minor.release


rpm包命名方式:
name-VERSION-release.arch.rpm
例:bash-4.2.46-19.el7.x86_64.rpm
VERSION: major.minor.release
release:release.OS
常見的arch:
x86: i386, i486, i586, i686
x86_64: x64, x86_64, amd64powerpc: ppc
跟平臺(tái)無(wú)關(guān):noarch

 

包命名和工具


包:分類和拆包
Application-VERSION-ARCH.rpm: 主包
Application-devel-VERSION-ARCH.rpm開發(fā)子包
Application-utils-VERSION-ARHC.rpm其它子包
Application-libs-VERSION-ARHC.rpm其它子包
包之間:可能存在依賴關(guān)系,甚至循環(huán)依賴
解決依賴包管理工具:
yum:rpm包管理器的前端工具
apt-get:deb包管理器前端工具
zypper: suse上的rpm前端管理工具
dnf: Fedora 18+ rpm包管理器前端管理工具

 

庫(kù)文件


查看二進(jìn)制程序所依賴的庫(kù)文件:
ldd/PATH/TO/BINARY_FILE


管理及查看本機(jī)裝載的庫(kù)文件:
ldconfig
/sbin/ldconfig-p: 顯示本機(jī)已經(jīng)緩存的所有可用庫(kù)文件名及文件路徑映射關(guān)系
配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
緩存文件:/etc/ld.so.cache

 

包管理器


程序包管理器:


功能:將編譯好的應(yīng)用程序的各組成文件打包一個(gè)或幾個(gè)程序包文件,從而方便快捷地實(shí)現(xiàn)程序包的安裝、卸載、查詢、升級(jí)和校驗(yàn)等管理操作


1、包文件組成(每個(gè)包獨(dú)有)
RPM包內(nèi)的文件
RPM的元數(shù)據(jù),如名稱,版本,依賴性,描述等
安裝或卸載時(shí)運(yùn)行的腳本


2、數(shù)據(jù)庫(kù)(公共)
程序包名稱及版本
依賴關(guān)系
功能說明
包安裝后生成的各文件路徑及校驗(yàn)碼信息

 


管理程序包的方式:
使用包管理器:rpm
使用前端工具:yum, dnf

 


獲取程序包的途徑:


(1) 系統(tǒng)發(fā)版的光盤或官方的服務(wù)器;
CentOS鏡像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
(2) 項(xiàng)目官方站點(diǎn)
(3) 第三方組織:
Fedora-EPEL:
Extra Packages for Enterprise Linux
Rpmforge:RHEL推薦,包很全
搜索引擎:
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/
(4) 自己制作
注意:檢查其合法性:來(lái)源合法性,程序包的完整性

 

rpm包管理


CentOS系統(tǒng)上使用rpm命令管理程序包:
安裝、卸載、升級(jí)、查詢、校驗(yàn)、數(shù)據(jù)庫(kù)維護(hù)
安裝:
rpm {-i|--install} [install-options] PACKAGE_FILE…
-v: verbose
-vv:
-h: 以#顯示程序包管理執(zhí)行進(jìn)度
rpm -ivhPACKAGE_FILE ...

 

rpm包安裝
[install-options]
--test: 測(cè)試安裝,但不真正執(zhí)行安裝;dry run模式
--nodeps:忽略依賴關(guān)系
--replacepkgs| replacefiles
--nosignature: 不檢查來(lái)源合法性
--nodigest:不檢查包完整性
--noscripts:不執(zhí)行程序包腳本
%pre: 安裝前腳本;--nopre
%post: 安裝后腳本;--nopost
%preun: 卸載前腳本;--nopreun
%postun: 卸載后腳本;--nopostun

 

rpm包升級(jí)
升級(jí):
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
upgrade:安裝有舊版程序包,則“升級(jí)”
如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級(jí)”
如果不存在舊版程序包,則不執(zhí)行升級(jí)操作
rpm -UvhPACKAGE_FILE ...
rpm -FvhPACKAGE_FILE ...
--oldpackage:降級(jí)
--force: 強(qiáng)行升級(jí)

 

升級(jí)注意項(xiàng)
(1) 不要對(duì)內(nèi)核做升級(jí)操作;Linux支持多內(nèi)核版本并存,因此,對(duì)直接安裝新版本內(nèi)核
(2) 如果原程序包的配置文件安裝后曾被修改,升級(jí)時(shí),新版本的提供的同一個(gè)配置文件并不會(huì)直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

 

包查詢
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪個(gè)程序包安裝生成
-p rpmfile:針對(duì)尚未安裝的程序包文件做查詢操作;
--whatprovidesCAPABILITY:查詢指定的CAPABILITY由哪個(gè)包所提供
--whatrequiresCAPABILITY:查詢指定的CAPABILITY被哪個(gè)包所依賴
rpm2cpio 包文件|cpio–itv預(yù)覽包內(nèi)文件
rpm2cpio 包文件|cpio–id “*.conf”釋放包內(nèi)文件

 

包查詢
[query-options]
--changelog:查詢r(jià)pm包的changelog
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝后生成的所有文件;
--scripts:程序包自帶的腳本
-R: 查詢指定的程序包所依賴的CAPABILITY;
--provides: 列出指定程序包所提供的CAPABILITY;

 
查詢用法:
-qi PACKAGE, -qfFILE, -qc PACKAGE, -qlPACKAGE, -qdPACKAGE
-qpiPACKAGE_FILE, -qplPACKAGE_FILE, ...
-qa
卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

 

包校驗(yàn)
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTimediffers
P capabilities differ

 
包來(lái)源合法性驗(yàn)正及完整性驗(yàn)正:
完整性驗(yàn)正:SHA256
來(lái)源合法性驗(yàn)正:RSA
公鑰加密:
對(duì)稱加密:加密、解密使用同一密鑰;
非對(duì)稱加密:密鑰是成對(duì)兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
導(dǎo)入所需要公鑰:
rpm -K|checksigrpmfile檢查包的完整性和簽名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發(fā)行版光盤提供:RPM-GPG-KEY-CentOS-7
rpm -qagpg-pubkey*

 

rpm數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)重建:
/var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在數(shù)據(jù)庫(kù),則新建之
否則,不執(zhí)行任何操作
rebuilddb:重建已安裝的包頭的數(shù)據(jù)庫(kù)索引目錄

 

 

 

 

 

網(wǎng)站標(biāo)題:Linux第11天:(08月17日)Linux軟件包管理rpm
分享鏈接:http://muchs.cn/article26/iioocg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航網(wǎng)站設(shè)計(jì)、商城網(wǎng)站響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化