linux學習筆記之軟件包管理

軟件包管理
    軟件包組成
    二進制程序
    配置文件
        單文件
        將主配置文件切割成多個小文件,並放置於某個目錄中。
            /etc/profile ,/etc/profile.d/*
            /etc/pam.conf , /etc/pam.d/*
        單文件,在內部分割成多個片段。
        [mysql] [mysqld]...
    庫文件: 二進制 可執行  函數(c程序都由函數組成) 共享模塊
        靜態庫
        動態庫
    幫助文件
        手冊頁
        文檔(/usr/share/doc)
        /bin /sbin 系統啓動使用
        /usr/bin  /usr/sbin 大多數軟件
        /usr/local/bin /usr/local/sbin 第三方軟件     
        操作系統啓動文件都在/上  redhat6以後/usr也不可獨立分區.
        爲減小/bin /sbin 大小 部分系統啓動文件也放在/usr/bin /usr/sbin上。
        第三方軟件比較多時可以獨立分出/usr/local

    庫文件
        /lib /lib64 /usr/lib  
        /etc/ld.so.conf.d/*.conf
        系統找不到/usr/local下的庫文件  /etc/ld.so.conf so shared object
        在/usr/local/lib 下的庫文件   在建立/etc/ld.so.conf.d/xxx.conf 存放
        搜索路徑。系統的則寫入/etc/ld.so.conf
        /etc/httpd/  httpd軟件的

    幫助文件:
        /usr/share/man
        /etc/man.conf    指定man到哪裏找man文件  doc
        /usr/share/doc

    頭文件;
        /usr/include
        kernel  glibc  app    os三大組成部分
        glibc  c語言標準通用庫

    硬件架構:
        x86 x64 poverpc sparc arm
    二進制程序: 有格式 特定於硬件平臺(編譯器自身在軟件編譯時在特定平臺上的運行進行優化)
        name-version-release-.arch.rpm
        version: 3.2.4
            major minor release
        32bit  x86
            i386  i486  i586  i686
        64bit  x86
            x86_64
        noarch.rpm 平臺無關  平臺文件
        
        name-version:主包
        name-subname-version:子包
        name-devel-version: 庫文件 頭文件

        循環依賴的需同時安裝。

        yum: yellowdog update modifier   rpm前端
        yum依賴於rpm 是其升級版。
        dpkg -----> apt-get
        rpm----->deb

        rpm包 rpm yum
        源碼包    編譯安裝
        製作好的二進制包壓縮包,解壓後配置使用。
            mysql  mongoDB
        
        rpm install    ---------------> rpm -i pkg1  pkg2   ...... // path
        rpm eraser     ---------------> rpm -e pkg1   ....
        rpm update     ---------------> rpm -U | -F pkg1....
        rpm verify     ---------------> rpm -V pkg1.....
        rpm query      ---------------> rpm -q ...
        
        install:
            rpm -i
                -v  verbose
                -h  #  progress
                --test
                --nodeps 忽略依賴
                --replacepkgs
                --force  無視衝突。

        before install     pre
        after install   post 收尾
        卸載之前    preun
        卸載之後    postun

        uninstall:
            rpm -e pks1   被依賴不可卸載。
            rpm -e php-cli
        update  :
            F freshing    無old,則不new
            U update    無old,則安裝new
            --oldpackages
            內核不應該升級安裝。 內核允許多版本並存。
        query:
            rpm -q  
            rpm -qi   
            簽名:單向加密  提取數據的指紋信息  數據特徵
                如果原數據一樣,結果數據一定一樣
                雪崩效應,原數據有一點點不同,結果大不同。
            rpm 提取特徵碼,附加在軟件包上。 官方使用自己的私鑰。
            私鑰加密,公鑰解密。
            篡改則破壞特徵碼.私鑰。
            公鑰解密得到官方提供的特徵碼,自己再使用同樣的方法提取特徵碼
            ,並比較和解密出來的特徵碼是否一致。
            rpm -ql  pkg1    list 顯示安裝哪些文件
            rpm -qf  file         根據文件查rpm包
            rpm -qc   pkg         查看配置文件
            rpm -qd   pkg         查看文檔 man  readme install

            rpm -a --scripts   pkg1   執行安裝的腳本 內置腳本
            
            還未裝則加 p 參數
            
            rpm -V pkg1
            rpm -K pkg1 檢查簽名
            rpm  --import key1   導入公鑰  /etc/pki/rpm-gpg/xxx
            沒簽名    sha1 md5 ok
            sha1 md5 數據包完整校驗
            --nodigest  不檢查單向加密    sh1 md5
            --nosignature  不檢驗簽名信息  gpg dsa
            
        重建rpm數據庫
            /var/lib/rpm
            *db*  鎖文件
            其它的是鎖文件
            rpm --initdb   被刪除 或不存在 存在則不覆蓋
            rpm --rebuilddb     覆蓋 重建


        源碼製作成rpm包
    
yum
    route    rpm包集合    xml文檔  元數據文件
    redhat5   包分開存放:
        server    常用的基本軟件  
            /repodata   yum源信息   父目錄即倉庫
        Cluster  集羣   
         ClusterStore  集羣存儲相關   
        VT
        yum源何在  
        下載到本地緩存  元數據緩存到本地
        協議3種:
            本地  file:///協議
            遠程服務器  ftp:// http://
        yum倉庫:    
        rpm包
        repodata/目錄  xml文件 只有包含此目錄爲其子目錄的那個路徑纔可以用作yum源
        repomd.xml  保存時間戳  看是否有變化
        primary.xml.gz  當前yum倉庫內每一個rpm包的名字及彼此之間的依賴關係:
            此外還包含每一個rpm包能夠安裝生成的文件;
        filelists.xml.gz: 所有rpm包包含的安裝生成文件的文件列表。
        other.xml.gz :  額外信息  主要包含rpm包的chnagelog;
        
        rpm包包組的定義
        yum 配置文件 子命令
        /etc/yum.conf/*
        /etc/yum.repos.d/*
        /etc/yum/pluginconf.d/*
        全局配置  分段配置   
        全局 /etc/yum.conf

        yum
        yum    repolist
        yum    list { installed | available | updates | all }
        yum    clean { all | packages | metadata}    // /var/cache/yum
        yum    grouplist
        yum    groupinfo  "group_name"
        yum    info    "PKG_NAME"
            provides FILE
            install -y    
            remove
            update
            groupinstall    
            localinstall
            reinstall
            check-update

            install createrepo

            createrepo dir

            --nogpgcheck

        

        
        createrepo
    redhat6   
        Package  
            server

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