This is G o o g l e's cache of http://www.debianclub.com/node/38 as retrieved on 16 Feb 2007 20:59:11 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?hl=en&q=cache%3Ahttp%3A%2F%2Fwww.debianclub.com%2Fnode%2F38&btnG=Search


Google is neither affiliated with the authors of this page nor responsible for its content.

User login

Links

debianclub.com
debian.org
ubuntuclub.com
blognone.com

Syndicate

Syndicate content

สร้าง 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 ที่ถูกเปิดใหม่อีกครั้งก่อนนะครับ