สร้าง mirror ส่วนตัว ด้วย apt-move
อัปเกรด กันบ่อยๆ มีการดาวน์โหลดแพกเกจมาไว้ที่เครื่องทุกวัน อยากเอามาใช้ประโยชน์อื่นหลังจากติดตั้งแล้วหรือเปล่า? ไม่อยาก? โอเค aptitude clean หรือ aptitude autoclean จบ ไม่ต้องอ่านต่อ :-) แต่ถ้าคิดว่าน่าเอาไปรีไซเคิล ก็ทำได้หลายอย่างครับ แต่ขั้นแรกที่น่าทำ คือการย้ายเข้า sub-mirror ส่วนตัวเสียก่อน ด้วยเครื่องมือที่จะแนะนำในวันนี้ คือ apt-move
apt-move จะช่วยย้าย deb ต่างๆ ที่ดาวน์โหลดมา เข้าไปไว้ใน package pool พร้อมทั้งสร้างรายชื่อแพกเกจให้ด้วย กล่าวคือ สามารถใช้เป็น apt source ได้เลย โดยสามารถกำหนดให้ลบแพกเกจเก่าได้ด้วย ซึ่งเมื่อใช้ไปนานๆ ก็จะได้ mirror ย่อยๆ ที่มีแต่แพกเกจที่เราดาวน์โหลดมาเท่านั้น แต่ถ้าจะทำ mirror เต็มๆ ก็มีคำสั่งให้ทำได้เหมือนกัน
ผลก็คือ สามารถใช้สร้าง local mirror ไว้ใช้เองเวลาจะ reinstall หรือไว้ใช้ร่วมกันใน intranet ก็ได้ หรือจะเก็บใส่ CD ไว้ใช้ติดตั้งในเครื่องอื่นก็ได้ (ถ้าแพกเกจครบพอ) ผมเคยใช้วิธีนี้แทน apt-proxy ในบางที่ เพื่อแก้ปัญหาอาการค้างที่เกิดกับ apt-proxy บ่อยๆ แต่ไว้พูดถึงทีหลังในรายละเอียด
ติดตั้งกันก่อน:
# aptitude install apt-move
จากนั้น แก้ค่าตั้งใน /etc/apt-move.conf โดยค่าที่น่าสนใจคือ:
APTSITES- เลือก mirror site ที่จะใช้อ้างอิงเวลา move เช่น
"linux.thai.net ftp.jp.debian.org"หรือใช้ค่า"/all/"เพื่อแทนทุกแหล่งที่อยู่ใน/etc/apt/sources.list LOCALDIR- กำหนดไดเร็กทอรีปลายทางที่จะเก็บ package pool
DIST- กำหนด distribution ที่ใช้ เช่น
unstable DELETE- กำหนดว่าจะลบแพกเกจเก่าทิ้งด้วยหรือไม่ โดยปกติควรจะกำหนดเป็น
yesเพื่อประหยัดเนื้อที่ MAXDELETE- กำหนดว่าจะลบแพกเกจเก่ากี่เปอร์เซ็นต์ ที่เหลือจะเก็บไว้หลายเวอร์ชัน เผื่ออยาก downgrade แพกเกจไหน
กำหนดคอนฟิกเรียบร้อยแล้ว ก็มาที่คำสั่งสำหรับย้ายแพกเกจ:
# apt-move update
จะย้ายแพกเกจที่ดาวน์โหลดมา ไปยังไดเร็กทอรีที่กำหนด พร้อมสร้างแฟ้ม Packages[.gz] ให้ด้วย ไดเร็กทอรีที่ได้ สามารถเอาไปเพิ่มใน /etc/apt/sources.list ของเครื่องที่ต้องการใช้ได้เลย เช่น สมมุติว่าย้ายเข้า /home/ftp/debian:
deb file:///home/ftp/debian unstable main contrib non-free
และถ้าเปิด FTP service ไว้ด้วย ก็ไปกำหนดที่เครื่องลูกได้:
deb ftp://server-ip/debian unstable main contrib non-free
เนื้อหาใน sub-mirror จะมีแต่แพกเกจที่มีการดาวน์โหลดมาเท่านั้น ดังนั้น ความครบถ้วนของ mirror ก็ขึ้นอยู่กับว่า มีการดาวน์โหลดแพกเกจต่างๆ ขนาดไหน ซึ่งก็มีหลายกลวิธี ที่จะทำให้เกิดการดาวน์โหลดให้ได้แพกเกจครบตามต้องการ ไว้เป็นเรื่องของเทคนิคส่วนตัวของแต่ละคน หรือไว้พูดถึงในภายหลังถ้ามีโอกาส แต่ถ้าคุณมีผู้ใช้จำนวนมาก ไม่รู้ว่าเขาจะใช้อะไรบ้าง ก็อาจจะ mirror ให้ครบที่สุดไว้ก่อน ก็ใช้คำสั่ง:
# apt-move mirror
ระวังให้ดีก่อนเรียก เพราะมันจะดาวน์โหลดเยอะมาก อย่าลืมเตรียมเนื้อที่ดิสก์ไว้รองรับด้วยล่ะ แล้วก็อย่าลืมพิจารณาเครื่องมือ mirror อื่นๆ ที่ออกแบบมาเพื่อการ mirror โดยเฉพาะ ที่อาจจะเหมาะกว่า apt-move ด้วย :-)
mirror แบบที่ทำมาข้างบน จะยังขาดเรื่อง secure apt คือการตรวจสอบลายเซ็นกำกับ mirror ไว้มาพูดต่อทีหลังครับ
โอ้ยอด!!
กำลังจะเขียนเรื่องนี้เหมือนกัน เพิ่งใช้งั้นอ่านของพี่เทพดีกว่า :-)
เล่าสูกันฟังบ้าง
มีเรื่องน่าสนใจก็แบ่งปันกันมั่งนะครับ เขียนหลายๆ คนคึกคักดี
gpg signing
ว่าจะเขียนเพิ่มเรื่องการ sign mirror แต่ปรากฏว่า feature นี้ หายไปในการอัปโหลดรุ่นใหม่ (4.2.26-1) ต้องรอให้เขาแก้ Debian Bug #320827 ที่ถูกเปิดใหม่อีกครั้งก่อนนะครับ









Recent comments
2 days 18 hours ago
3 days 10 hours ago
1 week 5 days ago
3 weeks 4 hours ago
3 weeks 6 days ago
4 weeks 18 hours ago
4 weeks 1 day ago
4 weeks 1 day ago
4 weeks 2 days ago
4 weeks 4 days ago