前面說到了軟件安裝能夠直接下載源碼壓縮版編譯安裝。還有一種安裝形式是使用廠商提供給用戶的安裝文件。廠商在他們的系統上編譯好用戶所須要的軟件,而後將編譯好的軟件發佈給用戶使用。html
目前廠商發佈軟件機制主要分爲2大類linux
Dpkg:由Debian Linux社區開發,B2D,Ubantu等Linuxdistributions使用就是這種機制shell
RPM:由Red Hat開發,CentOs,SuSe使用就是這種機制數據庫
這兩種機制安裝軟件會先檢測前驅軟件是否存在,若是不存在則不安裝.如軟件A安裝。需系統內含有軟件B,那麼不存在則不會安裝軟件vim
爲了解決這種因依賴問題而致使軟件不能安裝廠商又提供了在線升級機制,簡單的說就是先將前驅軟件都安裝以保證要安的軟件能正確安裝centos
Dpkg機制對應的在線升級機制APTapi
RPM機制對應的在線升級機制YUMtomcat
Rpm軟件相關信息會寫入/var/lib/rpm目錄下的數據庫文件內,將來軟件升級以及版本比較都源自這個數據庫,查詢已安裝RPM軟件也會查詢這個數據庫安全
前面提到過RPM軟件的安裝前會檢查前驅依賴的軟件是否已安裝,若是爲安裝則這次安裝不會進行,同時須要說明PRM機制軟件是廠商根據特定系統所提供,所以不一樣的Linux distributions,以及不一樣版本之間PRM機制軟件是不能相互安裝的bash
語法:rpm –[i|F|U]vh軟件名
選項與參數
-i: 安裝
-U:後接的軟件若是沒有安裝過則安裝,若是安裝過且版本較舊則更新
-F:後接的軟件如未安裝則不進行安裝,若是安裝過且版本較舊則更新
-v:查看詳細安裝信息
-h:顯示安裝進度
舉例1:安裝
[root@localhost ~]# rpm -ivh /media/CentOS_5.10_Final/CentOS/pam-devel-0.99.6.2-12.el5.i386.rpm Preparing... ########################################### [100%] 1:pam-devel ########################################### [100%]
舉例2:存在依賴的安裝
[root@localhost ~]# rpm -i /media/CentOS_5.10_Final/CentOS/ant17-junit-1.7.1-1jpp.0.i386.rpm error: Failed dependencies: ant17 = 0:1.7.1-1jpp.0 is needed by ant17-junit-1.7.1-1jpp.0.i386 junit is needed by ant17-junit-1.7.1-1jpp.0.i386 =>提示其前驅軟件爲安裝
語法: rpm –qa
rpm –q[iR] 存在於系統的軟件名
rpm –qf 存在於系統的某個文件名
rpm -qp[iR] 未安裝的某個文件名
-q:進查詢後面接的軟件名是否安裝
-qa:列出全部已安裝的軟件信息
-qi :列出後面接軟件的詳細信息
-qR:列出與該軟件有關的依賴軟件所含的文件
-qf:由後面接的文件名稱找出還文件屬於哪個以安裝的軟件
查詢某個未安裝軟件包含文件的信息
-qp[iR]:iR屬於與上面說的一致
[root@localhost ~]# rpm -q pam-devel =>不須要列出版本號 pam-devel-0.99.6.2-12.el5 [root@localhost ~]# rpm -qi pam-devel Name : pam-devel Relocations: (not relocatable) Version : 0.99.6.2 Vendor: CentOS Release : 12.el5 Build Date: 2013年01月09日星期三 13時30分55秒 Install Date: 2014年04月08日星期二 14時19分02秒 Build Host: builder17.centos.org Group : Development/Libraries Source RPM: pam-0.99.6.2-12.el5.src.rpm Size : 504034 License: GPL or BSD Signature : DSA/SHA1, 2013年01月10日星期四 03時18分55秒, Key ID a8a447dce8562897 URL : http://www.us.kernel.org/pub/linux/libs/pam/index.html Summary : Files needed for developing PAM-aware applications and modules for PAM Description : PAM(可插入驗證模塊)是一個系統安全工具。它容許 系統管理員無需從新編譯處理驗證的程序而設置驗證 策略。該軟件包包括用於建構留意 PAM 的程序和 PAM 使用的模塊所需的頭文件和靜態庫。 [root@localhost ~]# rpm -qR pam-devel libpam.so.0 libpam_misc.so.0 libpamc.so.0 pam = 0.99.6.2-12.el5 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [root@localhost ~]# rpm -qf /usr/lib/libpam.so pam-devel-0.99.6.2-12.el5 [root@localhost ~]# rpm –qa tomcat5-servlet-2.4-api-5.5.23-0jpp.40.el5_9 xml-commons-resolver-1.1-1jpp.12 …..
卸載:rpm –e 軟件名
重建數據庫:rpm –rebuilddb
前面說到RPM軟件安裝是若是存在前驅軟件且未安裝這次安裝就不會進行,爲了解決這個問題,就引入了YUM在線升級機制,簡答的說,YUM在線升級機制就是將須要安裝的軟件的前驅軟件(RPM)事先都進行安裝以保障軟件的順利安裝
語法:yum [option] [install|update]
Option:
-y:安裝過程當中詢問用戶操做,默認是yes
-installroot=路徑:軟件安裝路徑
install:安裝操做
update 更新操做
舉例:
[root@bogon ~]# yum -y install pam-devel Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.yun-idc.com * updates: mirrors.yun-idc.com Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-12.el5 set to be updated --> Finished Dependency Resolution …………………. Installing : pam-devel 1/1 Installed: pam-devel.i386 0:0.99.6.2-12.el5 Complete!
語法:yum[search|info |provides]軟件名
yum list|list updates
search: 查詢後接名稱的相關的軟件
info: 查詢後接軟件的相關信息
provides:查詢提供後接文件的軟件有哪些
list:列出服務器上所提供的軟件
list updates:列出服務器上可供升級的軟件
舉例:
[root@bogon ~]# yum search pam ……. pam.i386 : A security tool which provides authentication for applications pam-devel.i386 : Files needed for developing PAM-aware applications and modules for PAM ….. [root@bogon ~]# yum info pam-devel …… Installed Packages Name : pam-devel Arch : i386 Version : 0.99.6.2 Release : 12.el5 Size : 492 k Repo : installed Summary : Files needed for developing PAM-aware applications and modules for PAM URL : http://www.us.kernel.org/pub/linux/libs/pam/index.html License : GPL or BSD Description: PAM(可插入驗證模塊)是一個系統安全工具。它容許 : 系統管理員無需從新編譯處理驗證的程序而設置驗證 : 策略。該軟件包包括用於建構留意 PAM 的程序和 PAM : 使用的模塊所需的頭文件和靜態庫。 [root@bogon ~]# yum provides /bin/sh ……… bash-3.2-32.el5_9.1.i386 : The GNU Bourne Again shell (bash) version 3.2 Repo : base Matched from: Filename : /bin/sh
語法:yum [–y]remove 軟件名
舉例:
[root@bogon ~]# yum remove pam-devel Loaded plugins: fastestmirror, security Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package pam-devel.i386 0:0.99.6.2-12.el5 set to be erased --> Finished Dependency Resolution …………. Transaction Test Succeeded Running Transaction Erasing : pam-devel 1/1 Removed: pam-devel.i386 0:0.99.6.2-12.el5
前面說的YUM安裝都是一個一個安裝軟件,當咱們安裝一個複雜的功能時可能須要安裝不少個軟件,好比安裝KDE桌面系統,其包括不少軟件,若是在一個個安裝就會很費事。此時就可使用軟件組功能。(至於有哪些軟件組。這就須要服務器提供了)
語法: yum grouplist
yum [groupinfo|groupinstall|groupremove] 軟件組名
舉例:
[root@bogon ~]# yum grouplist Installed Groups:=>已經安裝的軟件組 DNS 名稱服務器 FTP 服務器 …….. Available Groups: =>可安裝的軟件組 Beagle Eclipse …….. Done
Yum軟件在線升級信息都要從遠端的服務器端來獲取數據,有時咱們須要更改下服務器地址,選擇些離咱們較近,或者資源較好的服務器以提升傳輸效率,那麼服務器配置信息在哪裏設置的?
語法:yum repolist all
root@bogon ~]# yum repolist all repo id repo name status C5.0-base CentOS-5.0 - Base disabled base CentOS-5 - Base enabled extras CentOS-5 - Extras enabled updates CentOS-5 - Updates enabled =>只有states是enabled纔是被激活的,上面有三個站點是被激活的
當咱們查詢安裝時會看到以下提示信息,就表明從上面三個激活站點查詢到的數據
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
*base: mirrors.yun-idc.com
*extras: mirrors.yun-idc.com
*updates: mirrors.yun-idc.com
服務器配置信息都在/etc/yum.repos.d/目錄下
[root@localhost /]# ll /etc/yum.repos.d/ -rw-r--r-- 1 root root 1926 04-02 09:21 CentOS-Base.repo -rw-r--r-- 1 root root 636 10-08 04:57 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 626 10-08 04:57 CentOS-Media.repo -rw-r--r-- 1 root root 7574 10-08 04:57 CentOS-Vault.repo -rw-r--r-- 1 root root 342 04-02 09:26 mystation.repo
以上可見分爲4個容器,每一個容器內配置了一些列站點
[root@localhost /]# vim /etc/yum.repos.d/CentOS-Base.repo =>查看包含了哪些站點 [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 enabled=1
名稱說明:
[base]:表明站點的名字!中刮號必定要存在
name:只是說明一下這個容器的意義而已
mirrorlist=:列出這個容器可使用的映射站臺,若是不想使用,能夠註解到這行;
baseurl=:由於後面接的就是容器的實際網址!
enable=1:就是讓這個容器被啓動。若是不想啓動可使用 enable=0 。
gpgcheck=1:這就是指定是否須要查閱 RPM 文件內的數碼簽章!
gpgkey=:就是數碼簽章的公鑰檔所在位置。使用默認值便可
舉例:管理一個站點
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 enabled=0 [root@bogon ~]# yum search gcc Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * extras: mirrors.btte.net * updates: mirrors.btte.net extras | 2.1 kB 00:00 updates =>查詢站點只剩下2個了
對於自定義的服務器地址須要在/etc/yum.repos.d/目錄下新建.repo文件,在裏面配置本身的服務器站點