天天看點

linux軟體包管理rpm

程式的組成部分:

    二進制部分:一般在/bin、/sbin等目錄

    庫:/lib、include

    配置檔案: /etc

    幫助檔案:man

linux各個目錄簡要注意點:

/etc,/bin,/sbin,/lib

    系統啟動就需要用到的程式,這些目錄不能挂載額外的分區,必須在根檔案系統所在的分區上

/usr/

    bin

    sbin

    lib

    作業系統核心功能,可以單獨分區

/proc

/sys

    不能單獨分區,預設為空

/dev:裝置,不能單獨分區

/root:不能單獨分區

/var:建議單獨分區

/boot:核心,initrd(initramfs)

POST-->BIOS-->(MBR)bootloader(檔案系統,ext2、ext3)-->核心

軟體包管理:rpm

作用:

    将二進制程式、配置檔案、幫助檔案、庫檔案打包成一個檔案

    生成資料庫,追蹤所安裝的每一個檔案

核心功能:

    1.制作軟體包

    2.安裝、解除安裝、更新、查詢、校驗

Redhat,SUSE:RPM

    Redhat Package Manager

    PRM is Package Manager

Debian:dpt

前端工具:yum apt-get

後端工具:RPM,dpt

yum:Yellowdog Update Modifier

rpm指令:

    rpm:

        資料庫:/var/lib/rpm

    rpmbuild:

rpm命名:

包:組成部分

    主包:

        bind-9.7.1-1.el5.i586.rpm

    子包:

        bind-libs-9.7.1-1.el5.i586.rpm

包名格式:

    name-version-release.arch.rpm

    bind-major.minor.release-release.arch.rpm

主版本号:重大改進

次版本号:某個子功能發生重大變化

發行号(第一個release):修正了部分bug,調整了一點功能

發行号(第二個release):作者制作成rpm修改的版本

rpm包:   

    二進制格式

    rpm包作者下載下傳源程式,編譯配置完成後,制作成rpm包

rpm:

安裝:

    rpm -i /PATH/TO/PACKAGE_FILE

        -h:以#顯示進度:每個#表示2%;

        -v:顯示詳細過程

        -vv:更詳細的過程

    rpm -ivh /PATH/TO/PACKAGE_FILE

        --nodeps:忽略依賴關系:

        --replacepk:重新安裝,替換原有安裝:

        --force:強行安裝,可以實作重裝或降級:

查詢:

    rpm -q PACKAGE_NAME:查詢指定的包是否已經安裝

    rpm -qa:查詢已經安裝的所有包

    rpm -qi PACKAGE_NAME:查詢指定包的說明資訊:

    rpm -ql PACKAGE_NAME:查詢指定包安裝後生成的檔案清單:

    rpm -qd PACKAGE_NAME:查詢指定包安裝的幫助檔案

    rpm -qf /path/to/somefile:查詢指定的檔案是由哪個rpm包安裝生成的

    rpm -q --script PACKAGE_NAME:查詢指定包中包含的腳本

如果某rpm包尚未安裝,我們需查詢其說明資訊,安裝以後會生成檔案

    rpm -qpi /PATH/TO/PACKAGE_FILE

    rpm -qpl

更新:

    rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本則更新,否則,則安裝

    rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本則更新,否則,退出

        --oldpackage:降級

解除安裝:

    rpm -e PACKAGE_NAME

        --nodeps

校驗:

    rpm -V PACKAGE_NAME

重建rpm資料庫:

     rpm 

        --rebuilddb:重建資料庫

        --initdb:初始化資料庫,沒有才建立,有就不用

檢驗來源合法性,以及軟體完整性:

    加密類型:

        對稱:加密解密使用同一個密鑰

        公鑰:一對密鑰,公鑰,私鑰:公鑰隐含于私鑰中,可以提取出來,并公開出去

    單向:用于驗證完整性,隻要有一個字元改變,計算結果便千差萬别

[root@logstash ~]# ls  /etc/pki/rpm-gpg/

RPM-GPG-KEY-CentOS-6           RPM-GPG-KEY-EPEL-6

RPM-GPG-KEY-CentOS-Debug-6     RPM-GPG-KEY-rpmforge-dag

RPM-GPG-KEY-CentOS-Security-6  RPM-GPG-KEY-rpmforge-fabian

RPM-GPG-KEY-CentOS-Testing-6

rpm  -K /PATH/TO/PACKAGE_FILE

    dsa,gpg:驗證來源合法性,也即驗證簽名可以使用--nosignature,略過此項

    sha1,md5:驗證軟體包完整性;可以使用--nodigest略過此項

本文轉自biao007h51CTO部落格,原文連結:http://blog.51cto.com/linzb/1752209 ,如需轉載請自行聯系原作者