จากที่ได้ ติดตั้งโปรแกรมเพิ่มบน CentOS 6.2 ด้วยคำสั่ง rpm แล้ว จะเห็นถึงความยุ่งยากในการติดตั้ง บางโปรแกรมกว่าจะติดตั้งได้ ต้องติดตั้งโปรแกรมอื่นๆ ก่อนอีกมากมาย
เพื่อความสะดวกและง่าย เราสามารถใช้คำสั่ง yum ในการแก้ไขปัญหาเรื่องการติดตั้งโปรแกรมจากไฟล์ประเภท rpm
ง่ายที่สุด เครื่องลีนุกซ์ที่จะรันคำสั่ง yum นั้น ต้องสามารถเชื่อมต่ออินเตอร์เน็ต เพื่อให้สามารถตรวจสอบข้อมูลการติดตั้งโปรแกรมจาก repos ที่อยู่บนอินเตอร์เน็ตได้
แต่บางครั้ง เครื่องที่ติดตั้งลีนุกซ์นั้น ไม่สามารถต่อออกอินเตอร์เน็ตได้
ในตอนนี้จะแนะนำการใช้คำสั่ง yum เพื่อติดตั้งไฟล์ rpm โดยใช้ repos ที่อยู่ในแผ่นดีวีดีติดตั้ง CentOS 6.2
คอนฟิกหลักของ yum คือไฟล์ /etc/yum.conf ส่วนไฟล์คอนฟิก repos จะถูกแยกต่างหาก ในไดเร็คทอรี /etc/yum.repos.d/
จากการติดตั้ง CentOS 6.2 จะมีไฟล์คอนฟิก repos ติดตั้งมาด้วย 3 ไฟล์
ไฟล์ /etc/yum.repos.d/CentOS-Base.repo และ /etc/yum.repos.d/CentOS-Debuginfo.repo จะเป็นคอนฟิกไฟล์ repos สำหรับติดตั้งโปรแกรมจากอินเตอร์เน็ต โดยดีฟอลต์จากการติดตั้ง repos ที่ถูกเปิดใช้งาน (enabled)
- base
- updates
- extras
ส่วน centosplus และ contrib โดยดีฟอลต์จะถูกปิดไว้
ส่วนไฟล์ /etc/yum.repos.d/CentOS-Media.repo จะเป็นคอนฟิกไฟล์ repos สำหรับติดตั้งโปรแกรมจากแผ่นดีวีดี ชื่อ repos คือ [c6-media] แต่จะถูกปิดการใช้งานไว้ (enabled=0)
สำหรับเครื่องที่ไม่ได้ต่ออินเตอร์เน็ต หรือหากต้องการใช้ yum เพื่อติดตั้งโปรแกรมจากแผ่นดีวีดี ต้องปิด repos จากอินเตอร์เน็ต และเปิด repos จากแผ่นดีวีดีแทน
การปิด repos บนอินเตอร์เน็ต “base”, “updates”, “extras”
เพื่อแสดงการเปลี่ยนแปลงคอนฟิกไฟล์ จะแสดงไฟล์คอนฟิก CentOS-Base.repo ก่อนและหลังการปิด repos
[root@cent62-yum ~]# cd /etc/yum.repos.d/
[root@cent62-yum yum.repos.d]# cat CentOS-Base.repo
# 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-6
#released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 ...
ใช้คำสั่ง yum-config-manager ตามด้วยออปชั่น ‘–disable’ ตามด้วยชื่อ repos ที่ต้องการปิดการใช้
[root@cent62-yum yum.repos.d]# yum-config-manager --disable base
Loaded plugins: fastestmirror
===================================================================== repo: base ======================================================================
[base]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/6
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/6/base
cost = 1000
enabled = 0
...
[root@cent62-yum yum.repos.d]# yum-config-manager --disable updates
Loaded plugins: fastestmirror
==================================================================== repo: updates ====================================================================
[updates]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/6
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/6/updates
cost = 1000
enabled = 0
...
[root@cent62-yum yum.repos.d]# yum-config-manager --disable extras
Loaded plugins: fastestmirror
==================================================================== repo: extras =====================================================================
[extras]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/6
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/6/extras
cost = 1000
enabled = 0
...
ไฟล์คอนฟิก CentOS-Base.repo ที่เปลี่ยนไป จะมีออปชั่น enabled=0 เพิ่มขึ้นมา ในแต่ละ repos ที่ถูกปิดการใช้ (disable)
[root@cent62-yum yum.repos.d]# cat CentOS-Base.repo
# 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-6
enabled = 0
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled = 0
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled = 0
เปิดการใช้ repos จากแผ่นดีวีดี
โดยดีฟอลต์จถูกปิดไว้ หากเราต้องการให้ yum ใช้ repos จากแผ่นดีวีดีติดตั้ง ต้องเปิดการใช้งาน
ไฟล์คอนฟิก CentOS-Media.repo ก่อนการแก้ไข
[root@cent62-yum ~]# cat /etc/yum.repos.d/CentOS-Media.repo # CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
# CentOS-6. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
ใช้คำสั่ง yum-config-manger ตามด้วยออปชั่น ‘–enable’ แล้วตามด้วยชื่อ repos สำหรับ CentOS 6 จะมีชื่อว่า “c6-media”
[root@cent62-yum ~]# yum-config-manager --enable c6-media
Loaded plugins: fastestmirror
=================================================================== repo: c6-media ====================================================================
[c6-media]
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/6
baseurl = file:///media/CentOS/,
file:///media/cdrom/,
file:///media/cdrecorder/
cache = 0
cachedir = /var/cache/yum/x86_64/6/c6-media
cost = 1000
enabled = True
...
ไฟล์คอนฟิก CentOS-Media.repo หลังการเปิดการใช้งาน “c6-media”
[root@cent62-yum ~]# cat /etc/yum.repos.d/CentOS-Media.repo # CentOS-Media.repo
...
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
หากดูตามคอนฟิกในไฟล์ CentOS-Media.repo จะเห็นว่า repos ชื่อ c6-media มีการเรียกใช้ไฟล์จาก /media/CentOS/, /media/cdrom/, หรือ /media/cdrecorder/
ดังนั้นเราต้อง mount ดีวีดี กับไดเร็คทอรี เช่น /media/cdrom/
สร้างไดเร็คทอรี /media/cdrom
[root@cent62-yum ~]# ls -l /media total 0
[root@cent62-yum ~]# mkdir /media/cdrom
ใส่แผ่นดีวีดีติดตั้ง CentOS 6.2 แผ่นที่ 1 เข้าไปในไดร์ฟ แล้วใช้คำสั่ง mount กับไดเร็คทอรี /media/cdrom
[root@cent62-yum ~]# mount /dev/dvd /media/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only
ติดตั้ง git ด้วย yum จากแผ่นดีวีดี
ใช้คำสั่ง yum install ตามด้วยชื่อโปรแกรมที่ต้องการติดตั้ง สมมติว่าต้องการติดตั้ง git
[root@cent62-yum ~]# yum install git
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* c6-media:
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.7.1-2.el6_0.1 will be installed
--> Processing Dependency: perl-Git = 1.7.1-2.el6_0.1 for package: git-1.7.1-2.el6_0.1.x86_64
--> Processing Dependency: perl(Git) for package: git-1.7.1-2.el6_0.1.x86_64
--> Processing Dependency: perl(Error) for package: git-1.7.1-2.el6_0.1.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17015-4.el6 will be installed
---> Package perl-Git.noarch 0:1.7.1-2.el6_0.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================
Installing:
git x86_64 1.7.1-2.el6_0.1 c6-media 4.6 M
Installing for dependencies:
perl-Error noarch 1:0.17015-4.el6 c6-media 29 k
perl-Git noarch 1.7.1-2.el6_0.1 c6-media 28 k
Transaction Summary
================================================================================================================================
Install 3 Package(s)
Total download size: 4.7 M
Installed size: 15 M
Is this ok [y/N]: y
หากต้องการติดตั้งโปรแกรมต่างๆ ตามข้อมูลที่แจ้งมา พิมพ์ y แล้วกด [Enter] ***
Downloading Packages: -------------------------------------------------------------------------------------------------------------------------------- Total 20 MB/s | 4.7 MB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org> Package: centos-release-6-2.el6.centos.7.x86_64 (@anaconda-CentOS-201112091719.x86_64/6.2) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Is this ok [y/N]: y
การติดตั้งโปรแกรมด้วย yum นั้น จะมีการตรวจสอบความถูกต้องของไฟล์ rpm ทุกครั้ง ด้วย GPG key หากเป็นการใช้ yum เพื่อติดตั้งโปรแกรมครั้งแรก จะมีการถามว่าให้ใช้ GPG key จาก /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 หรือไม่
หากยืนยันพิมพ์ y แล้วกด [Enter]
Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : 1:perl-Error-0.17015-4.el6.noarch 1/3 Installing : git-1.7.1-2.el6_0.1.x86_64 2/3 Installing : perl-Git-1.7.1-2.el6_0.1.noarch 3/3 Installed: git.x86_64 0:1.7.1-2.el6_0.1 Dependency Installed: perl-Error.noarch 1:0.17015-4.el6 perl-Git.noarch 0:1.7.1-2.el6_0.1 Complete!
ติดตั้งโปรแกรมสำเร็จ
[root@cent62-yum ~]# git --version git version 1.7.1
ข้อมูลอ้างอิง