程序包管理

一:程序包概述

程序包組成部分:node

二進制程序:/bin,/sbin,/usr/bin,/usr/sbin數據庫

庫文件:/lib64,/usr/lib64小程序

配置文件:/etc/windows

幫助文檔:man,infocentos


2、應用程序管理器

一、經常使用的軟件安裝方式:緩存

dpkg:bash

這個機制最先是由 Debian Linux 社羣所開發出來的,透過 dpkg 的機制, Debian 提供的軟件就可以簡單的安裝起來,同時還能提供安裝後的軟件信息,實在很是不錯。 只要是衍生於 Debian 的其餘 Linux distributions 大多使用 dpkg 這個機制來管理軟件的, 包 B2D, Ubuntu 等等。服務器

rpm:ide

這個機制最先是由 Red Hat 這家公司開發出來的,所以不少 distributions 就使用這個機制來做爲軟件安裝的管理方式。包 Fedora, CentOS, SuSE 等。post

二、包管理器的基本功能

打包,安裝,查詢,升級,卸載,效驗


依賴關係:循環依賴,版本依賴

三、程序包分包機制:(哲學思想:每個包實現一種功能,組合小程序完成複雜任務)

核心包

支包

程序包命名機制:major.minor.release

rpm包命名:name-version-release.arch.rpm

release 是rpm的release,而不是源代碼的release

rpm公共數據庫/var/lib/rpm/

重建數據庫

rpm {--initdb|--rebuilddb}

初始化:--initdb

若是事先不存在數據,則會新之;不然,不執行任何操做

從新構建:--rebuilddb

不管當前是否已經存在數據庫,都會直接重建並覆蓋現有數據庫;

四、包命名格式:

源程序:

name-version.tar.gz

version:major.minor.release

rpm包:

name-version-release.ARCH.rpm

release:一般包含rpm的製做發行號,還包含使用的OS

例: bash-4.1.2-14.el6.x86_64.rpm


分包:把一個複製的程序打包製做成多個rpm格式

主包:bash-4.1.2-14.el6.x86_64.rpm

支包:bash-devel-4.1.2-14.el6.x86_64.rpm

五、如何獲取程序包:

一、發行商提供的程序包

二、Fedora-EPEL

三、項目的官方站點

四、搜索引擎

http://rpmfind.net

http://rpm.phome.net

http://pkgs.org



3、rpm包的使用

一、基於rpm命令實現程序包管理

安裝:

格式  # rpm {-i|--install} [install-options] PACKAGE_FILE ...

-i,--install:安裝

-v:顯示詳細信息,-vv

-h (或 --hash): 以#的個數顯示安裝進度

--test:僅測試,不真正安裝,能夠看到該包的依賴關係

--nodeps:忽略依賴關係

--replacepgs:重裝

--oldpackage:降級

重裝或升級時:原來的配置文件不會被覆蓋,新安裝的配置文件將會重命名爲以.rpmnew爲後綴的文件


升級:

格式  # rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

格式  # rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-Uvh:若是有舊版程序包,則升級,若是沒有,則安裝

-Fvh:若是有舊版程序包,則升級,若是沒有,則無操做

--force:強制升級

--nodeps: 忽略依賴關係

注意:不要對內核執行升級操做

多版本內核可並存,所以,建議執行安裝操做



卸載:

格式  # rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

若是卸載被其它程序所依賴的包:

一、把依賴者一同卸載

二、忽略依賴關係

三、再也不卸載


查詢:

格式  # rpm {-q|--query} [select-options] [query-options]

-qa: 查詢本機已經安裝的全部程序包;

-qf /PATH/TO/SOMEFILE: 查詢此處的文件由哪一個程序包安裝生成;

-qc: 查詢指定程序包安裝生成的配置文件

-qd: 查詢指定的程序包安裝生成的文檔

-qi: 查詢指定的程序包的相關信息;

-ql: 查詢程序包安裝生成的全部文件的列表;

-q --scripts  查詢rpm包相關的腳本

preinstall:安裝前腳本

postinstall:安裝後腳本

preuninstall:卸載前腳本

postuninstall:卸載後腳本

-p 查詢當前系統中沒有安裝的rpm相關信息



效驗

檢查包安裝後生成的文件是否被修改過

格式  # rpm {-V|--verify} [select-options] [verify-options]

S (file Size differs)檔案的容量大小是否被改變

M (Mode differs (includes permissions and file type)) 檔案的類型戒檔案的屬性 (rwx) 是否被改變

5 (digest (formerly MD5 sum) differs MD5) 這一種紋碼的內容已經不一樣

D (Device major/minor number mismatch)裝置的主/次代碼已經改變

L (readLink(2) path mismatch Link 路徑已被改變

U (User ownership differs)檔案的所屬人已被改變

G (Group ownership differs)檔案的所屬羣組已被改變

T (mTime differs)檔案的創建時間已被改變

P (caPabilities differ) 檔案的大小已被改變

包校驗:

來源合法性驗正:非對稱加密

完整性驗正:單向加密

導入密鑰:rpm--import /PATH/TO/KEY_FILE

                   校驗:rpm -K/PATH/TO/RPM_FILE

wKiom1X3zhTjAf6_AACG7JweftU620.jpg

wKioL1X30FjyivHDAAXISDKBcUE328.jpg

 

4、YUM的使用

1yum配置

要使用yum管理應用程序,首先得配置其可用的yum倉庫,保存在配置文件中

yum的配置文件:

        /etc/yum.conf :全局配置,通常默認便可不用更改

       /etc/yum.repos.d/*.repo: 一個文件一般用於一個或一組功能相近或相關的倉庫         

配置文件格式:由兩段組成,相似windowsini配置文件

             [main]:主配置段

             [repo]:倉庫配置段

定義一個數據倉庫指向:

    [repo_ID]

    name=NAME

    baseurl=倉庫的訪問路徑

    enabled=[1|0]   1表示啓用,0表示不啓用,若是不存在該配置,則默認啓用

    gpgcheck=[1|0]   是否檢查包來源合法性和完整性

    gpgkey=公鑰文件  (能夠在本地,也能夠是服務器端路徑)

    cost=定義此倉庫的開銷,默認爲1000    數值小的優先使用         

 

定義倉庫指向可用變量:

         有些內容是這樣的:

#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/

         $releasever

    當前 OS 發行版的主版本號,如對CentOS 6.6 系統,這個值爲 6

$arch

    當前系統的平臺,如i386, x86_64

$basearch

    基礎平臺,如 x86_64 amd64 平臺的基礎平臺同爲 x86_64

 

 

2yum的使用

yum repolist [all|enabled|disabled] 默認列出全部可用repo

 wKioL1X30KaitgV7AAFQ7rGBRQA976.jpg

yum clean [all|package|metadata|expire-cache|rpmdb|plugins]  清除全部緩存

yum 緩存路徑/var/cache/yum

yum makecache 生成緩存

yum list [all|installed|available] 列出目前 yum 所管理的全部的軟件名稱與版本

wKioL1X30L7CpdtTAAY4TtHq5Gw554.jpg

yum info  (包名默認列出目前 yum 所管理的全部的軟件名稱與版本的詳細信息

yum grouplist  列出目前 yum 所管理的全部的包組

wKiom1X3zqWBmH4aAAJoc-Qk_jM605.jpg

yum groupinfo  包組名稱 列出目前 yum 所管理的全部包組的詳細信息

 

 

安裝:yuminstall,yum groupinstal

wKiom1X3zr3RcwJfAAOt-SWFC2U204.jpg

重裝:yumreinstall

wKiom1X3ztbzx9MtAAPnOpT_ZmY139.jpg

卸載:yum[remove|erase],yum greoupremove

wKiom1X3zuqhvbgtAANy9rssDiY249.jpg

檢查可升級的包:yumcheck-update

要升級到指定版本:yumupdate x-4.4.12-1el7.x86_64.rpm

升級:yumupdate 

降級:yum  downgrade 降級包的包名

 

如何使用光盤當作本地倉庫:

先將RHEL6的光盤掛載到某一目錄下,如掛載到/mnt

#mount  /dev/cdrom  /mnt

/etc/yum.repos.d目錄下建立一個以.repo結尾的文件:

#vi /etc/yum.repos.d/server.repo

配置內容以下:

[Server]   //倉庫名稱

name=Server  //倉庫描述信息

baseurl=file:///mnt  //URL訪問路徑

enabled=1  //啓用此軟件倉庫

gpgcheck=1  //驗證軟件包的簽名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  //GPG公鑰文件的位置

相關文章
相關標籤/搜索