มาทำ 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

มาใช้ mirror.in.th อัพเดท Fedora กันเถอะ

แหมหลังจากอัพเกรดเซิร์ฟเวอร์ขนานใหญ่ ทั้ง RAM และ Storage ตอนนี้ Mirror แห่งชาติของเพราะมีพื้นที่รวมกว่า 30TB ตอนี้ก็ได้เปิดให้ใช้บริการอย่างปกติแล้วครับ วันนี้เลยได้แวะเวียนไปใช้บริการเล็กน้อยในส่วนของ Fedora 11? เรื่องของเรื่องคือ Fedora 11 พยายาม rotate mirror server ที่อยู่ในรายการ mirror แต่ที่น่าเสียดาย mirror.in.th ไม่อยู่ใน list ซะงั้น ก็คงต้องเพิ่มกันเอาเองล่ะครับ วิธีการเพิ่ม repo เพื่อใช้ mirror.in.th ก็ง่ายนิดเดียว วิธีการทำมีดังนี้ครับ
สร้างไฟล์ thai-national-mirror.repo ลงใน /etc/yum.repo.d

su -c 'nano /etc/yum.repo.d/thai-national-mirror.repo'

จากนั้นใส่ข้อมูลลงไปดังนี้

[thai-national-mirror]
name=TMOSS for Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://mirror.in.th/osarchive/fedora/releases/$releasever/Everything/$basearch/os/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0

เอ้าใช้ให้คุ้มค่ากันหน่อยครับ ลงทุนไปหลายกะตังค์ เห่อๆ

มาใช้ YUM repo ของ ThaiOpenSource.Org กันเถอะ

เหมือนเป็นธรรมเนียมปฏิบัติเวลาผมใช้ Linux ตระกลูไหนต้องทำ custom repository ได้นั่นหมายถึงการ distribute และการ contribute แพคเกจใหม่ๆ ให้กับ Linux distro นั้นๆ ทางอ้อม ซึ่งผมเองทำประจำอยู่แล้ว แต่ไม่ได้เอาแพคเกจตัวเองเข้าต้นน้ำสักที เอาเป็นว่าอยู่อย่างพอเพียง build แจกกันเล่นไปเรื่อยๆ นี่แหละครับสนุกกว่า ใช้ได้บ้าง ไม่ได้บ้างก็อย่างว่ากันนะครับ วันนี้ก็เลยมาแนะนำ ThaiOpenSource for Fedora repository กันครับ ผมเพิ่มทำเสร็จเมื่อเช้ามีแพคเกจอยู่ 4 ตัวครับ ให้ลองค้นหากันดูเอาเองว่าแพคเกจชื่ออะไร 😉 เอาละมา config YUM repo กันเลย ให้สร้างไฟล์ที่ชื่อ thaiopensource.repo ลงใน /etc/yum.repo.d

su -c 'nano /etc/yum.repo.d/thaiopensource.repo'

จากนั้นใส่ข้อมูลลงไปดังนี้

[thaiopensource]
name=ThaiOpenSource.Org for Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://thaiopensource.org/fedora/releases/$releasever/Everything/$basearch/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0

แลัว update repo data ในเครื่องได้เลยครับ โดยใช้คำสั่ง

su -c 'yum update'

ทำ Ubuntu Repository ใช้เองแบบดูดีหน่อย

สืบเนื่องมาจากโครงการพัฒนาลีนุกซ์ฉบับกระเป๋า เมื่อปีที่แล้ว เขียนโครงการไว้นานทำออกมาได้ 2 release แล้วเลิกทำครับ เพราะเข้าใจว่าการ remaster มาผิดทาง เอาเป็นว่าไม่ต้องพูดถึงมันก้อแล้วกันครับ หลายเดือนที่ผ่านมาได้ทดลองประกอบ Ubuntu จนพอเข้าใจบ้างแล้วว่าจะทำ ลีนุกซ์ในแบบฉบับของผมทำได้ยังไง เอาละมาถึงข้อใหญ่ในการทำ repository เพื่อการสนับสนุนซอฟต์แวร์ใหม่ๆ ใน โครงการพัฒนาลีนุกซ์ฉบับกระเป๋า กันครับ จากโครงร่างของ repositry ของ Advance Packaging Tool (APT) ทำให้ทราบว่าการแบ่ง รุ่นในแต่ละเวอร์ชั่นทำโดยการสร้างฐานข้อมูลของ Package ในไดเรคทอรี dists ซึ่งใน dists นี้ก้อจะมี ไดเรคทอรีที่เป็นชื่อแต่ละเวอร์ชั่นอยู่ ในนั้นก้อจะมีไฟล์ฐานข้อมูล Package อยู่ เอาล่ะ คราวนี้ผมก้อแก้ปัญหาในเรื่อง repository กลาง และ การซัพพอร์ทในแต่ละเวอร์ชั่นของโครงการพัฒนาลีนุกซ์ฉบับกระเป๋าได้แล้ว
แนวความคิดในการทำ repository แบบนี้สามารถประยุกต์ใช้ในองค์กรได้ เช่น ฝ่าย IT สามารถทำ repository เล็กๆ เก็ยไฟล์โปรแกรมใหม่ๆ ที่ผ่านการทดสอบแล้วว่าใช้ได้ดี หรือ จัดทำ แก้ไข ใหม่ แล้วเอาไปใส่ไว้ให้เพื่อนๆ พนักงานได้ apt-get ไปใช้กันได้ในสำนักงาน ขั้นตอนง่ายๆ ในการทำ repository มีไม่ยากครับ คือ เอา .deb ของเรานี่แหละไปใส่เอาไว้ที่ไดเรคทอรีที่เก็บไฟล์ deb เอาไว้ ยกตัวอย่างเช่น pool/main เป็นต้น แล้วสร้างฐานข้อมูล Package ออกมาให้เก็บไว้ในไดเรคทอรีในแต่ละเวอร์ชั่น Continue reading ทำ Ubuntu Repository ใช้เองแบบดูดีหน่อย