in How-to

มาทำ YUM repository สำหรับ Fedora กัน

แหมกลับมาใช้ Fedora ทั้งทีก็คงไม่เขียนถึง YUM repository คงจะไม่ได้ YUM จะว่าเป็นของใหม่ ก็คงไม่ใช่ YUM เป็นโปรแกรมช่วยจัดการแพคเกจที่มีอยู่ใน Fedora มานานหลายเวอร์ชันแล้วครับ แต่ผมเองไม่ได้ทดสอบหรือทดลองอะไรแหวกแนวมากนัก แต่ที่แน่ๆ YUM ใน Fedora 11 เปลี่ยนไป! ผมสังเกต Fedora หันมาใช้ XML มากขึ้นหลังจาก Fedora 9 และ Fedora 10 และที่ผ่านมาส่วนใหญ่จะถูกแทรกลงในส่วนที่ไม่กระทบกับผู้ใช้มากนัก สำหรับท่านที่ใช้ YUM ใน Fedora 11 จะพบว่ามันเปลี่ยนไป ไม่สามารถเรียกใช้ Repository เก่าได้ ก็เนื่องมาจาก repo data ของ YUM เปลี่ยนไปนั่นเอง เอาล่ะเกริ่นมามากเดี๋ยวจะเริ่มงง เรามาสร้าง YUM repository เอาไว้ใช้ในสำนักงาน/องค์กรกันดีกว่า ก่อนจะเริ่มต้นมาอ่านข้อตกลงกันก่อน เครื่องที่ผมใช้ มี IP address เป็น 192.168.0.100 นะครับ เอ้ามาเริ่มกันเลย

แปลงร่างเป็น root กันก่อนเพื่อความสะดวกครับ

su -

จากนั้นติดตั้ง Apache

yum httpd

ตั้งค่าให้ Apache เริ่มต้นตอนบูท

chkconfig --levels 235 httpd on

จากนั้น start Apache ได้เลย

/etc/init.d/httpd start

จาก นั้นมาสร้างที่เก็บ repo กัน Fedora วางโครงสร้างของ repository ได้ดีมาก และสร้าง repo แบ่งออกเป็นเวอร์ชันได้ ทำให้ง่ายในการจัดการ โครงสร้างของ repo ที่เราจะสร้างกันหน้าตาเป็นแบบนี้ครับ

fedora/releases/เลขเวอร์ชัน/Everything/i386/os/Packages

สมมุติว่าเราสร้าง repo ของ Fedora 11 เราก็จะได้โครงสร้างแบบนี้ครับ

fedora/releases/11/Everything/i386/os/Packages

มาสร้างไดเรคทอรีใน /var/www กันเลยครับ

mkdir -p /var/www/fedora/releases/11/Everything/i386/os/Packages

จากนั้นให้คุณคัดลอกไฟล์ .rpm ไปไว้ที่ไดเรคทอรี Packages แล้วสั่งสร้าง repo data ดังนี้

createrepo /var/www/fedora/releases/11/Everything/i386/os/

เท่า นี้ก็เรียบร้อยแล้วครับ จากนั้นให้เครื่อง client ตั้งค่า repo มาทดสอบได้เลย วิธีการตั้งค่า repo เข้าใช้งาน repo ในสำนักงานเราก็ง่ายๆ ครับ สร้างไฟล์ชื่อ officerepo.repo ลงใน /etc/yum.repo.d

nano /etc/yum.repo.d/officerepo.repo

ใส่ข้อมูลลงไปดังนี้ครับ

[office-repo]
name=Office Repo for Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://192.168.0.100/fedora/releases/$releasever/Everything/$basearch/os/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0