天天看點

RPM包管理器庫檔案yum系統CD光牒yum倉庫

庫檔案

  • 檢視二進制程式所依賴的庫檔案

    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

  • 包解除安裝

    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

    當包解除安裝時,對應的配置檔案不會删除,以FILENAME.rpmsave形式保留
  • 包校驗
  • 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>