占位,待完善。。。
程式包管理:
核心功能:程序管理、記憶體管理、網絡協定棧、驅動程式、...
應用程式:
包管理器:打包,包管理(安裝、更新、解除安裝、查詢及校驗)
deb: debian
rpm: redhat package manager
RPM is Package Manager
程式包的組成部分:
二進制程式:/bin, /sbin,/ /usr/bin, /usr/sbin,
庫檔案:/lib64, /usr/lib64
配置檔案:/etc
幫助檔案:manual, info,
包管理器:
打包:一個單一的歸檔檔案中;
安裝:
解除安裝:
更新:
查詢:
校驗:
來源的合法性、完整性;
rpm包:
rpmbuild: specs檔案
10:5, 3, 2
分包機制:
testapp-VERSION.tar.gz
核心包:testapp-VERSION
支包:testapp-devel-VERSION
VERSION:major.minor.release
base-4.2.4.tar.gz
rpm包的命名機制:
name-VERSION-RELEASE.ARCH.rpm
bash-4.2.4-1.el7.x86_64.rpm
bash-devel-4.2.4-1.el7.x86_64.rpm
RELEASE: rpm release
包和包之間:有可能存在依賴關系:
X --> Y
rpm資料庫:/var/lib/rpm/
如何擷取rpm包:
1、發行版提供的程式包;
2、Fedora-EPEL
3、項目的官方站點
4、搜尋引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
CentOS識别CD光牒用的裝置檔案:/dev/cdrom,
基于rpm指令實作程式包管理:
安裝:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
-i:
-v:顯示詳細過程,-vv, -vvv
-h:
每個rpm包都提供一個或多個capabilities
--nodeps:忽略依賴關系安裝
--replacepkgs:重裝程式包
更新:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-Uvh: 如果有舊版程式包,則更新之;如果沒有,則安裝之;
-Fvh: 如果有舊版程式包,則更新之;如果沒有,則不安裝;
--nodeps
--oldpackage:降級;
--force:
解除安裝:
rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
查詢:
rpm {-q|--query} [select-options] [query-options]
查詢選項:
-qa: 查詢本機已經安裝的所有程式包;
-qf /PATH/TO/SOMEFILE: 查詢此處的檔案由哪個程式包安裝生成;
-qc: 查詢指定程式包安裝生成的配置檔案
-qd: 查詢指定的程式包安裝生成的文檔
-qi: 查詢指定的程式包的相關資訊;
-ql: 查詢程式包安裝生成的所有檔案的清單;
-q --scripts:查詢程式包相關的腳本:
preinstall: 安裝前腳本
postinstall:安裝後腳本
preuninstall: 解除安裝前腳本
postuninstall: 解除安裝後腳本
-p: 查詢針對是未安裝的程式封包件;
校驗:
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 mTime differs
P caPabilities differ
包校驗:
來源合法性驗正:非對稱加密
完整性驗正:單向加密
導入密鑰:rpm --import /PATH/TO/KEY_FILE
校驗:rpm -K /PATH/TO/RPM_FILE
YUM: Yellowdog Updater Modified
yum repositories:
檔案伺服器:
ftp://hostname/PATH/TO/REPO
http://hostname/PATH/TO/REPO
file:///PATH/TO/REPO
yum程式的配置檔案:
/etc/yum.conf
定義全局配置:對所有倉庫都适用的配置
/etc/yum.repos.d/*.repo
一個檔案通常用于一個或一組功能相近或相關的倉庫
定義一個倉庫指向:
[REPO_ID]
name=
baseurl=
# mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE
enabled={1|0}
gpgcheck={1|0}
gpgkey=
cost=
定義倉庫指向可用變量:
$releasever: 引用目前系統的主版本号;
$basearch: 目前系統的基本架構;
i386, i486, i586, i686: i386
http://mirrors.magedu.com/CentOS/$releasever/os/$basearch
yum指令:
yum [options] [command] [package ...]
指令:
安裝:install
解除安裝:remove
更新:update
查詢:
info
search KEYWORD
list all|installed|availiable
provides /PATH/TO/SOMEFILE: 查詢指定檔案由哪個包安裝生成
重新安裝:reinstall
降級:downgrade
清理緩存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
生動生成緩存:makecache
包組:
grouplist
groupinfo "GRP_NAME"
groupinstall "GRP_NAME"
groupremove "GRP_NAME"
倉庫:
repolist [all|enabled|disabled]
repoinfo [all|enabled|disabled]
如何使用CD光牒當做本地倉庫:
挂載CD光牒至某目錄
定義倉庫,使用file:///指明其通路路徑;
建立本地倉庫:
yum install createrepo
createrepo /PATH/TO/RPMFILES/