http://wiki.jikexueyuan.com/project/learn-linux-step-by-step/images/17.bmp" alt="" />
前面說到了軟件安裝可以直接下載源碼壓縮版編譯安裝。還有一種安裝形式是使用廠商提供給用戶的安裝文件。廠商在他們的系統(tǒng)上編譯好用戶所需要的軟件,然后將編譯好的軟件發(fā)布給用戶使用。
目前廠商發(fā)布軟件機制主要分為2大類
Dpkg:由 Debian Linux 社區(qū)開發(fā),B2D,Ubantu 等 Linuxdistributions 使用就是這種機制
RPM:由 Red Hat 開發(fā),CentOs,SuSe 使用就是這種機制
這兩種機制安裝軟件會先檢測前驅(qū)軟件是否存在,如果不存在則不安裝.如軟件 A 安裝。需系統(tǒng)內(nèi)含有軟件 B,那么不存在則不會安裝軟件
為了解決這種因依賴問題而導(dǎo)致軟件不能安裝廠商又提供了在線升級機制,簡單的說就是先將前驅(qū)軟件都安裝以保證要安的軟件能正確安裝
Dpkg 機制對應(yīng)的在線升級機制 APT
RPM 機制對應(yīng)的在線升級機制 YUM
Rpm 軟件相關(guān)信息會寫入/var/lib/rpm 目錄下的數(shù)據(jù)庫文件內(nèi),未來軟件升級以及版本比較都源自這個數(shù)據(jù)庫,查詢已安裝 RPM 軟件也會查詢這個數(shù)據(jù)庫
前面提到過 RPM 軟件的安裝前會檢查前驅(qū)依賴的軟件是否已安裝,如果為安裝則此次安裝不會進行,同時需要說明 PRM 機制軟件是廠商根據(jù)特定系統(tǒng)所提供,因此不同的 Linux distributions,以及不同版本之間 PRM 機制軟件是不能相互安裝的
語法:rpm –[i|F|U]vh 軟件名
選項與參數(shù)
-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
=>提示其前驅(qū)軟件為安裝
語法: rpm –qa
rpm –q[iR] 存在于系統(tǒng)的軟件名
rpm –qf 存在于系統(tǒng)的某個文件名
rpm -qp[iR] 未安裝的某個文件名
-q:進查詢后面接的軟件名是否安裝
-qa:列出所有已安裝的軟件信息
-qi :列出后面接軟件的詳細信息
-qR:列出與該軟件有關(guān)的依賴軟件所含的文件
-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(可插入驗證模塊)是一個系統(tǒng)安全工具。它允許
系統(tǒng)管理員無需重新編譯處理驗證的程序而設(shè)置驗證
策略。該軟件包包括用于建構(gòu)留意 PAM 的程序和 PAM
使用的模塊所需的頭文件和靜態(tài)庫。
[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 軟件名
重建數(shù)據(jù)庫:rpm –rebuilddb
前面說到 RPM 軟件安裝是如果存在前驅(qū)軟件且未安裝此次安裝就不會進行,為了解決這個問題,就引入了 YUM 在線升級機制,簡答的說,YUM 在線升級機制就是將需要安裝的軟件的前驅(qū)軟件(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: 查詢后接名稱的相關(guān)的軟件
info: 查詢后接軟件的相關(guān)信息
provides:查詢提供后接文件的軟件有哪些
list:列出服務(wù)器上所提供的軟件
list updates:列出服務(wù)器上可供升級的軟件
舉例:
[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(可插入驗證模塊)是一個系統(tǒng)安全工具。它允許
: 系統(tǒng)管理員無需重新編譯處理驗證的程序而設(shè)置驗證
: 策略。該軟件包包括用于建構(gòu)留意 PAM 的程序和 PAM
: 使用的模塊所需的頭文件和靜態(tài)庫。
[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 安裝都是一個一個安裝軟件,當我們安裝一個復(fù)雜的功能時可能需要安裝很多個軟件,比如安裝 KDE 桌面系統(tǒng),其包括很多軟件,如果在一個個安裝就會很費事。此時就可以使用軟件組功能。(至于有哪些軟件組。這就需要服務(wù)器提供了)
語法: yum grouplist
yum [groupinfo|groupinstall|groupremove] 軟件組名
舉例:
[root@bogon ~]# yum grouplist
Installed Groups:=>已經(jīng)安裝的軟件組
DNS 名稱服務(wù)器
FTP 服務(wù)器
……..
Available Groups: =>可安裝的軟件組
Beagle
Eclipse
……..
Done
Yum 軟件在線升級信息都要從遠端的服務(wù)器端來獲取數(shù)據(jù),有時我們需要更改下服務(wù)器地址,選擇些離我們較近,或者資源較好的服務(wù)器以提高傳輸效率,那么服務(wù)器配置信息在哪里設(shè)置的?
查看系統(tǒng)中配置服務(wù)器站點
語法: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 才是被激活的,上面有三個站點是被激活的
當我們查詢安裝時會看到如下提示信息,就代表從上面三個激活站點查詢到的數(shù)據(jù)
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
配置服務(wù)器站點
服務(wù)器配置信息都在/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個容器,每個容器內(nèi)配置了一些列站點
[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=:因為后面接的就是容器的實際網(wǎng)址!
enable=1:就是讓這個容器被啟動。如果不想啟動可以使用 enable=0 。
gpgcheck=1:這就是指定是否需要查閱 RPM 文件內(nèi)的數(shù)碼簽章!
gpgkey=:就是數(shù)碼簽章的公鑰檔所在位置。使用默認值即可
舉例:管理一個站點
[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個了
對于自定義的服務(wù)器地址需要在/etc/yum.repos.d/目錄下新建.repo 文件,在里面配置自己的服務(wù)器站點
本文出自 “StarFlex” 博客,請務(wù)必保留此出處http://tiankefeng.blog.51cto.com/8687281/1372503