rpm包管理功能全解

                                              rpm包管理功能全解

     

                                                             rpm包管理功能全解
        
    linux rpm問題:怎樣查看rpm安裝包的安裝路徑  
                   rpm -qa l grep  xxxxxx.rpm    
        
        rpm的命令:rpm  [OPTIONS]  [PACKAGE_FILE]
            安裝:-i, --install
            升級:-U, --update, -F, --freshen
            卸載:-e, --erase
        例如:卸載軟件包proftpd-1.2.8-1,可以使用下列格式:
                  rpm -e proftpd-1.2.8-1
                  rpm -e proftpd-1.2.8
                  rpm -e proftpd-
                  rpm -e proftpd
            查詢:-q, --query
            校驗:-V, --verify
            數據庫維護:--builddb, --initdb
            
        安裝:
            rpm {-i|--install} [install-options] PACKAGE_FILE ...
            
                rpm  -ivh  PACKAGE_FILE ...
                
                GENERAL OPTIONS:
                    -v:verbose,詳細信息
                    -vv:更詳細的輸出
                
                [install-options]:
                    -h:hash marks輸出進度條;每個#表示2%的進度;
                    --test:測試安裝,檢查並報告依賴關係及衝突消息等;
                    --nodeps:忽略依賴關係;不建議;
                    --replacepkgs:重新安裝
                    
          注意:rpm可以自帶腳本;
                       

                   四類:--noscripts
                            preinstall:安裝過程開始之前運行的腳本,%pre , --nopre
                            postinstall:安裝過程完成之後運行的腳本,%post , --nopost
                            preuninstall:卸載過程真正開始執行之前運行的腳本,%preun, --nopreun
                            postuninstall:卸載過程完成之後運行的腳本,%postun , --nopostun
                            
                    --nosignature:不檢查包簽名信息,不檢查來源合法性;
                    --nodigest:不檢查包完整性信息;
                    
        升級:
            rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
            rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
            
                -U:升級或安裝;
                -F:升級
                
                rpm  -Uvh PACKAGE_FILE ...
                rpm  -Fvh PACKAGE_FILE ...
                
                    --oldpackage:降級;
                    --force:強制升級;
                    
                注意:(1) 不要對內核做升級操作;Linux支持多內核版本並存,因此,直接安裝新版本內核;
                        (2) 如果某原程序包的配置文件安裝後曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)後提供;
                        
        卸載:
            rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...
                
                --allmatches:卸載所有匹配指定名稱的程序包的各版本;
                --nodeps:忽略依賴關係
                --test:測試卸載,dry run模式
                
        查詢:
            rpm {-q|--query} [select-options] [query-options]
            
             [select-options]
                PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本;
                -a, --all:查詢所有已經安裝過的包;
                -f  FILE:查詢指定的文件由哪個程序包安裝生成;
                
                -p, --package PACKAGE_FILE:用於實現對未安裝的程序包執行查詢操作;
                
                --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供;
                --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
                
            [query-options]
                --changelog:查詢rpm包的changlog;
                -l, --list:程序安裝生成的所有文件列表;
                -i, --info:程序包相關的信息,版本號、大小、所屬的包組,等;
                -c, --configfiles:查詢指定的程序包提供的配置文件;
                -d, --docfiles:查詢指定的程序包提供的文檔;
                --provides:列出指定的程序包提供的所有的CAPABILITY;
                -R, --requires:查詢指定的程序包的依賴關係;
                --scripts:查看程序包自帶的腳本片斷;
                
            用法:
                -qi  PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
                -qpi  PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...
                
        校驗:
            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
            
    包來源合法性驗正和完整性驗正:
        來源合法性驗正:
        完整性驗正:
        
        獲取並導入信任的包製作者的密鑰:
            對於CentOS發行版來說:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
            
        驗正:
            (1) 安裝此組織簽名的程序時,會自動執行驗正;
            (2) 手動驗正:rpm -K PACKAGE_FILE
            
    數據庫重建:
        rpm管理器數據庫路徑:/var/lib/rpm/
            查詢操作:通過此處的數據庫進行;
            
        獲取幫助:
            CentOS 6:man rpm
            CentOS 7:man rpmdb
            
            rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]
                --initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;
                --rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;
                
                
 總結:1.怎樣安裝一個包
             # rpm -ivh  
           2.升級一個包
             # rpm -Uvh  
           3.移走一個包
             # rpm -e  
           4.安裝參數
             --force 即使覆蓋屬於其它包的文件也強迫安裝
             --nodeps 如果該RPM包的安裝依賴其它包,即使其它包沒裝,也強迫安裝。
           5.查詢一個包是否被安裝
             # rpm -q < rpm package name>
           6.得到被安裝的包的信息
             # rpm -qi < rpm package name>
           7.列出該包中有哪些文件
             # rpm -ql < rpm package name>
           8.列出服務器上的一個文件屬於哪一個RPM包
             #rpm -qf  
           9.可綜合好幾個參數一起用
             # rpm -qil < rpm package name>
          10.列出所有被安裝的rpm package
             # rpm -qa  
          11.列出一個未被安裝進系統的RPM包文件中包含有哪些文件?
             # rpm -qilp < rpm package name>
           
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章