歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux下使用Yum管理本地軟件包

在Linux系統的維護中,Linux軟件包之間的依賴性是一件令人十分頭痛的事情。比如你要安裝軟件包A,但是安裝的時候提示你在安裝A前得先安裝軟件包B;而當你去安裝軟件包B時,又提示你得先安裝C庫… 為了解決此問題,我們得使用Linxu下的yum(Yellow dog Updater,Modified) 工具。yum工具能根據repository(軟件倉庫)中rpm包的各種header信息,自動安裝依賴的包,解決依賴性問題。在linux下使用yum的添加/刪除/更改rpm包十分方便!

下面是linux下一個簡單的yum配置和使用過程:
1. 實驗環境
操作系統:Red Hat Enterprise Linux AS 5
內核版本:2.6.18-8.el5
CPU構架:i386 SMP
附件軟件:Red Hat Enterprise Linux AS 5 DVD ISO文件

2. 在linux下安裝yum並建立repository(軟件倉庫)
#在linux系統下掛載rhel 5.0 dvd iso文件
mkdir -p /mnt/iso
mount -o loop /opt/rhel5.0.iso /mnt/iso

#在linux系統下安裝yum,createrepo包
rpm -ivh /mnt/ISO/Server/yum-3.0.1-5.el5.noarch.rpm
rpm -ivh /mnt/ISO/Server/yum-metadata-parser-1.0-8.fc6.i386.rpm
rpm -ivh /mnt/ISO/Server/yum-rhn-plugin-0.4.3-1.el5.noarch.rpm
rpm -ivh /mnt/ISO/Server/yum-updatesd-3.0.1-5.el5.noarch.rpm
rpm -ivh /mnt/ISO/Server/createrepo-0.4.4-2.fc6.noarch.rpm

#將掛載的iso中的文件復制到/opt/rhel5.0目錄中
mkdir /opt/rhel5.0
cp -R /mnt/ISO/* /opt/rhel5.0

#重新生成repository(軟件倉庫)相關文件,生成的文件在當前目錄的“repodata”文件夾下。
cd /opt/rhel5.0/Server/
rm -rf repodata
createrepo -g /mnt/ISO/Server/repodata/comps-rhel5-server-core.xml ./

3. 在linux配置yum
在/etc/yum.repos.d/目錄下建立一個後綴為.repo的配置文件,如:rhel_yum.repo(該目錄下的其他文件可以刪除),rhel_yum.repo內容如下:此文來自:http://www.aiezu.com/
[Server]
name=Server
baseurl=file:///opt/rhel5.0/Server/
#注意baseurl指向我們的repository(軟件倉庫)/opt/rhel5.0/Server目錄
enable=1
gpgcheck=0

此文來自:http://www.aiezu.com/
4. 測試rhel5.0 linux下的yum
#清除yum設置緩存
yum clean all

#查看已安裝的和未安裝的軟件包組
yum grouplist

#安裝Web Server包組
yum groupinstall "Web Server"

#查看組信息
yum groupinfo "Web Server"
此文來自:http://www.aiezu.com/
#刪除"MySQL Database"
yum groupremove "MySQL Database"

#升級"MySQL Database"
yum groupupdate "MySQL Database"

5. linux下yum安裝的常見問題

①. 問:為什麼要把掛載的ISO鏡像中的文件復制到本地磁盤上,而不直接在掛載的iso文件系統中使用?
  答:因為我們必須重新生成repository的相關配置文件,而掛載的iso文件系統是不可寫的,所以必須復制到本地磁盤中去。
②. 問:當我們配置好後執行 "yum groupinstall 'MySQL Database' " 安裝時報如下錯誤,是怎麼回事?
yum groupinstall "MySQL Database"
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
This system is not registered with RHN.
RHN support will be disabled.
Setting up Group Process 此文來自:http://www.aiezu.com/
Setting up repositories
Setting up repositories
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 663 kB 00:00
################################################## 2113/2113
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for mysql to pack into transaction set.
media://1170972069.396645%232/mysql-5.0.22-2.1.i386.rpm: [Errno 4] IOError:
此文來自:http://www.aiezu.com/
<urlopen error unknown url type: media>
Trying other mirror.
Error: failed to retrieve mysql-5.0.22-2.1.i386.rpm from s
error was [Errno 4] IOError: <urlopen error unknown url type: media>

  答:請確定"/etc/yum.repos.d/rhel_yum.repo"文件中的"baseurl"指向的不是掛載的iso文件系統路徑,而是本地磁盤文件系統路徑,如此文的第三步的中的第三行。並且確定使用了第二步的第九行重新生成了repository配置文件。其實"media://1170972069.396645#1"就是rhel 5.0 dvd iso 中的Server/repodata/repomd.xml文件的配置值。此文來自:http://www.aiezu.com/
③. 問:為什麼我執行"yum grouplist"命令後沒有列出任何包組信息?如下:
#yum grouplist
Loading "installonlyn" plugin
Loading "rhnplugin" plugin
This system is not registered with RHN.
RHN support will be disabled.
Setting up Group Process
Setting up repositories
Server 100% |=========================| 951 B 00:00
Done

答:請確定執行了createrepo命令重新生成repository配置文件,並且命令帶了 "-g"選項,如第二步第19行所示。rhel 5.0 dvd iso中的"Server/repodata/comps-rhel5-serer-core.xml"即包含了rpm包的分組信息。此文來自:http://www.aiezu.com/

好了,Linux下使用Yum管理本地軟件包就寫到此了,有什麼問題歡迎隨時給我留言。
 

Copyright © Linux教程網 All Rights Reserved