庫檔案
-
檢視二進制程式所依賴的庫檔案
ldd/PATH/TO/BINARY_FILE
- 管理及檢視本機裝載的庫檔案
加載配置檔案中指定的庫檔案ldconfig
顯示本機已經緩存的所有可用庫檔案名及檔案路徑/sbin/ldconfig–p
映射關系配置檔案:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf緩存檔案:/etc/ld.so.cache
RPM包管理器
資料庫(公共):/var/lib/rpm
-
安裝
rpm {-i|--install} [install-options] PACKAGE_FILE...
-v: verbose
-vv:
-h: 以#顯示程式包管理執行進度rpm -ivhPACKAGE_FILE ...
[install-options]
--test: 測試安裝,但不真正執行安裝,即dry run模式
--nodeps:忽略依賴關系
--replacepkgs| replacefiles--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
--noscripts:不執行程式包腳本
%pre: 安裝前腳本--nopre
%post: 安裝後腳本--nopost
%preun: 解除安裝前腳本--nopreun
%postun: 解除安裝後腳本--nopostun
-更新
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
upgrade:安裝有舊版程式包,則“更新”如果不存在舊版程式包,則“安裝”
freshen:安裝有舊版程式包,則“更新”如果不存在舊版程式包,則不執行更新操作
rpm -UvhPACKAGE_FILE ...
rpm -FvhPACKAGE_FILE ...
--oldpackage:降級
--force: 強制安裝
注意:(1) 不要對核心做更新操作;Linux支援多核心版本并存,是以直接安裝新版本核心(2) 如果原程式包的配置檔案安裝後曾被修改,更新時,新版本提供的同一個配置檔案不會直接覆寫老版本的配置檔案,而把新版本檔案重命名(FILENAME.rpmnew)後保留
-包查詢
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a:所有包
-f:檢視指定的檔案由哪個程式包安裝生成
-p rpmfile:針對尚未安裝的程式封包件做查詢操作
--whatprovidesCAPABILITY:查詢指定的CAPABILITY由哪個包所提供
--whatrequiresCAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
rpm2cpio 封包件|cpio–itv預覽包内檔案
rpm2cpio 封包件|cpio–id “*.conf”釋放包内檔案
[query-options]
--changelog:查詢rpm包的changelog
-c:查詢程式的配置檔案
-d:查詢程式的文檔
-i:information-l:檢視指定的程式包安裝後生成的所有檔案
--scripts:程式包自帶的腳本
--provides:列出指定程式包所提供的CAPABILITY-R:查詢指定的程式包所依賴的CAPABILITY
- 常用查詢用法:
,-qi PACKAGE
-qf FILE
-qc PACKAGE
-ql PACKAGE
-qd PACKAGE
-qpi PACKAGE_FILE
, ...-qpl PACKAGE_FILE
-qa
- 包解除安裝
當包解除安裝時,對應的配置檔案不會删除,以FILENAME.rpmsave形式保留rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
- 包校驗
-
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
-
包來源的合法性驗證及完整性驗證
完整性驗證:SHA256
來源合法性驗證:RSA
-
公鑰加密
對稱加密:加密、解密使用同一密鑰
非對稱加密:密鑰是成對兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
-
導入所需要公鑰
rpm -K|checksigrpmfile檢查包的完整性和簽名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版CD光牒提供:RPM-GPG-KEY-CentOS-7
rpm -qa“gpg-pubkey*”
- rpm資料庫
-
資料庫重建:/var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在資料庫,則建立之
否則,不執行任何操作
rebuilddb:重建已安裝的標頭的資料庫索引目錄
yum
- yum用戶端配置檔案:
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
倉庫指向的定義:
[repositoryID]name=Some name for this repository
baseurl=url://path/to/repository
enabled={1|0}
gpgcheck={1|0}
gpgkey=URLenablegroups={1|0
failovermethod={roundrobin|priority}
roundrobin:意為随機挑選,預設值
priority:按順序通路
cost= 預設為1000
- yum倉庫
yum的repo配置檔案中可用的變量:
$releasever: 目前OS的發行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等
$basearch:基礎平台;i386, x86_64
$YUM0-$YUM9:自定義變量
示例:
http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64http://server/centos/6/i386
yum指令
yum指令的用法:
yum [options] [command] [package ...]
顯示倉庫清單:
yum repolist[all|enabled|disabled]
顯示程式包:
yum list
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
安裝程式包:
yum install package1 [package2] [...]
yum reinstall package1 [package2] [...] (重新安裝)
更新程式包:
yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...] (降級)
檢查可用更新:
yum check-update
解除安裝程式包:
yum remove | erase package1 [package2] [...]
檢視程式包information:
yum info [...]
檢視指定的特性(可以是某檔案)是由哪個程式包所提供:
yum provides | whatprovidesfeature1 [feature2] [...]
清理本地緩存:
清除/var/cache/yum/$basearch/$releasever緩存
yum clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]
建構緩存:
yum makecache
搜尋:
yum search string1 [string2] [...]
以指定的關鍵字搜尋程式包名及summary資訊
檢視指定包所依賴的capabilities:
yum deplistpackage1 [package2] [...]
檢視yum事務曆史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
**日志:**/var/log/yum.log
安裝及更新本地程式包:
yum localinstall rpmfile1 [rpmfile2] [...]
(用install替代)
yum localupdate rpmfile1 [rpmfile2] [...]
(用update替代)
yum groupinstall group1 [group2] [...]
yum groupupdate group1 [group2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]yum groupinfo group1 [...]
--nogpgcheck:禁止進行gpgcheck
-y: 自動回答為“yes”
-q:靜默模式
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啟用此處指定的repo
--noplugins:禁用所有插件
系統CD光牒yum倉庫
-
系統安裝CD光牒作為本地yum倉庫:
(1) 挂載CD光牒至某目錄,例如/mnt/cdrom
mount /dev/cdrom/mnt/cdrom
[CentOS7]name=
baseurl=
gpgcheck=
enabled=
- 建立yum倉庫:
createrepo[options] <directory>