วันนี้ขอไม่ลงรายละเอียดมากนะครับ เน้นกันลืม
Local Repository ก็คือการทำให้เครื่อง Server RHEL ของเราสามารถสั่ง yum แบบ offline ได้นั้นเองครับ
คือไม่ต้องต่อ Internet (ถึงต่อก็ yum ไม่ได้ถ้าไม่ซื้อ Subscription License) วิธีนี้เป็นการนำ rpm จากแผ่น dvd ที่ใช้ติดตั้งมาเก็บไว้ในเครื่อง
ทำให้สามารถสั่ง yum เพื่อช่วยในการติดตั้ง package ต่างๆ ได้สะดวกขึ้น ใครที่เคยติดตั้ง rpm เองคงรู้ดีว่า dependency package นั้นเป็นอะไรที่จุกจิกกวนใจ จะติดตั้ง package นี้ต้องไปติดตั้งไอ้โน้น ไอ้นี้ มาก่อนนะ
แต่ด้วยคำสั่ง yum install xxxx มันเข้ามาช่วยทำให้อะไรๆ ง่ายขึ้นเยอะ กล่าวคือ yum จะตรวจสอบหา dependent package ให้เอง จะติดตั้ง package a อะไรที่ a ต้องใช้ yum ก็จะติดตั้งให้เอง โอ้สะดวกดีแท้
ขั้นตอนมีคร่าวๆ ดังนี้
1. mount dvd iso
2. ใช้คำสั่ง createrepo เพื่อสร้าง package list และ group list
มาดู detail กันครับ
1. ผมมี .iso ของ rhel 5.5 อยู่ใน hdd ครับผมก็เลย upload rhel-server-5.5-x86_64-dvd.iso ไปไว้ที่ Server ที่ต้องการจะ config local repository ใครไม่มี .iso ก็เอาแผ่น dvd ที่มีอยู่ใน burn เป็น .iso ก่อนก็ได้ครับ (หรือจะ copy path Server ในแผ่นไปไว้ที่เครื่องก็ได้ แต่วิธีที่ผมจะสอนวันนี้ใช้ .iso) ผมเอาไฟล์ rhel-server-5.5-x86_64-dvd.iso ไปไว้ที่ /opt
/opt/rhel-server-5.5-x86_64-dvd.iso
2. สร้าง Mount Point สำหรับใช้เก็บไฟล์ที่ Mount มาจาก rhel-server-5.5-x86_64-dvd.iso
mkdir -p /dvd/actual
3. มา Mount กันเลย
mount -r -t iso9660 -o loop /opt/rhel-server-5.5-x86_64-dvd.iso /dvd/actual
4. Mount เสร็จแล้วก็ติดตั้ง Package createrepo ก่อน
cd /dvd/actual/Server
rpm -ivh createrepo*.rpm
5. กลับมายัง ณ ตำแหน่ง /dvd
cd /dvd
6. ติดตั้ง Package createrepo เสร็จแล้วก็สามารถ Repository file กันต่อ อย่าลืมว่าตอนนี้คุณต้องอยู่ที่ /dvd pwd ดูก็ได้
createrepo .
**อย่าลืมใส่ . ด้วยนะ
7. เสร็จแล้วเราจะได้ /dvd/repodata ข้างในมีไฟล์ .gz กับ .xml 2-3 ไฟล์
8. ทำการ copy GPG Key จากในแผ่นไปไว้ที่ /opt
cp /dvd/actual/*GPG* /opt
9. ที่นี้มาก็มาสร้าง /etc/yum.repos.d/dvd.repo กันจะ vi หรือ nano หรือ pico ก็แล้วแต่สะดวก แต่ขอให้ข้างในไฟล์มีเนื้อหาดังนี้
[dvd]
name=RHEL5DVD
baseurl=file:///dvd
enabled=1
gpgcheck=1
gpgkey=file:///opt/RPM-GPG-KEY-redhat-release file:///opt/RPM-GPG-KEY-redhat-beta
10. แค่ 9 ขั้นตอนข้างต้นก็เพียงพอสำหรับ yum install xxxx แต่มันจะยัง yum grouplist ไม่ได้ นั้นคือไม่สามารถติดตั้ง Package แบบ Group ได้ เช่น yum groupinstall “Web Server” จะยังไม่ได้ ประเด็นที่เขียนบทความนี้ก็เพราะลองทำตอนแรกมันสั่ง yum grouplist ไม่ได้นี่หละครับ เลยต้องมาเขียนกันลืมไว้ เรามาแก้ปัญหานี้ไปพร้อมๆ กัน ขั้นตอนต่อมา คือทำการ copy ไฟล์ /dvd/actual/Server/repodata/comps-rhel5-server-core.xml ไปไว้ที่ /dvd/repodata
cp /dvd/actual/Server/repodata/comps-rhel5-server-core.xml /dvd/repodata
11. ทำการ regenerate เนื้อหาของไฟล์ /dvd/repodata/comps-rhel5-server-core.xml ซะใหม่โดย
cd /dvd
createrepo -g repodata/comps-rhel5-server-core.xml .
** อย่าลืมเติม .
12. ลอง recheck ขั้นตอนกันหน่อย
- mount .iso ไปไว้ที่ /dvd/actual หรือยัง
- ติดตั้ง createrepo แล้ว ?
- สั่ง createrepo ซึ่งจะได้ /dvd/repodata แล้ว ?
- ทำการ copy GPG Key จากแผ่นไปไว้ที่ /opt แล้ว ?
- สร้างไฟล์ /etc/yum.repos.d/dvd.repo แล้ว ?
- copy ไฟล์ comps-rhel5-server-core.xml ไปเก็บไว้ที่ /dvd/repodata/ และทำการ regenerate ไฟล์ใหม่ด้วยคำสั่ง creatererp -g แล้ว ?
ถ้าคุณทำครบทุกขั้นตอนก็ตามข้างต้นก็ลองมา yum กันเลย
13. สั่ง yum กันโลด
yum clean all
yum update
yum makecache
yum install httpd
yum grouplist
yum groupinstall “Web Server”
14. yum ผ่านแล้วอยากให้ yum ได้ทุกครั้งที่เปิดเครื่องก็เอา
/opt/rhel-server-5.5-x86_64-dvd.iso /dvd/actual iso9660 defaults,ro,loop 0 0
ไปใส่ไว้ในไฟล์ /etc/fstab ก็เป็นอันจบข่าว
ใครทำไม่ได้หรือติดตรงไหน comment บอกกันไว้ได้เลย
Good Luck
แหล่งข้อมูล :
http://openbysource.blogspot.com/2007/02/configuring-yum-in-rhel5-for-dvd-source.html
http://www.linuxquestions.org/questions/linux-software-2/yum-grouplist-setup-on-custom-repo-655529/