yum ติดตั้งโปรแกรมจากแผ่นดีวีดีติดตั้ง CentOS 6

จากที่ได้ ติดตั้งโปรแกรมเพิ่มบน 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
คำสั่ง yum จะตรวจสอบไฟล์ rpm หรือโปรแกรมต่างๆ ที่จำเป็นต้องใช้ แสดงผลลัพธ์ให้ดู

หากต้องการติดตั้งโปรแกรมต่างๆ ตามข้อมูลที่แจ้งมา พิมพ์ 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

ข้อมูลอ้างอิง

 

Leave a Reply