在使用RedHat系統過程中,經常會安裝各種包,而包的安裝又存在着依賴性的問題,即一個包的安裝通常依賴其它很多包的安裝。這樣,就會相當不便。所幸,RedHat提供了Yum。Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
Yum源支持三種配置方式:FTP、HTTP和本地file。下面腳本配置的yum源是基於本地文件的,利用的是系統光盤。
說明:
1> 必須將系統光盤掛載到系統光驅中。
2> 該例中處理的難題是光盤文件名為/media/RHEL_6.3\ i386\ Disc\ 1/,而通過for循環讀取文件名,最后只顯示/media/RHEL_6.3 i386 Disc 1,即中間的空格沒有轉義符。如果是將后者作為yum配置文件/etc/yum.repos.d/local.repo的baseurl,仍會報錯。必須使用前者,即帶有轉義符的。在這里,用了baseurl=${i// /\\ }實現字符串替換,將空格替換為\空格。
#!/bin/bash rm -f /etc/yum.repos.d/* echo "[BASE]" > /etc/yum.repos.d/local.repo echo "name=base" >> /etc/yum.repos.d/local.repo for i in /media/* do if [ -e "$i" ] ; then baseurl=${i// /\\ } echo "baseurl=file://$baseurl" >> /etc/yum.repos.d/local.repo else echo "Please Insert The Disk!" fi done echo "enabled=1" >> /etc/yum.repos.d/local.repo echo "gpgcheck=0" >> /etc/yum.repos.d/local.repo
腳本執行后的結果:
[oracle@node3 ~]$ cat /etc/yum.repos.d/local.repo
[BASE] name=base baseurl=file:///media/RHEL_6.3\ i386\ Disc\ 1 enabled=1 gpgcheck=0