ทำแคชให้ apt ด้วย apt-proxy

apt-proxy เป็นซอฟต์แวร์ที่ใช้เก็บแพกเกจ apt ใครมีเครื่องลินุกซ์ที่ใช้แพกเกจ apt ในหน่วยงานตั้งแต่สองเครื่องขึ้นไป ควรติดตั้งไว้ที่เครื่องเซิร์ฟเวอร์เป็นอย่างยิ่งครับ

เอามาจาก : ThaiLinuxCafe - ทำแคชให้เดเบียนแพคเก็จด้วย apt-proxy
โฮมเพจอยู่ที่ : http://apt-proxy.sourceforge.net/

ขอไว้อาลัยและอุทิศกุศลแด่ : คุณ Manuel Estrada Sainz (ranty) และคุณ Andrés García (ErConde) ผู้พัฒนาด้วยครับ

ที่เครื่องเซิร์ฟเวอร์

สมมุติว่าเซิร์ฟเวอร์ชื่อ server1.example.com ไอพี 192.168.1.5

เริ่มติดตั้งด้วย

# aptitude install apt-proxy

ปรับตั้งแพกเกจนิดหน่อย

# vi /etc/apt-proxy/apt-proxy-v2.conf
...
max_age = 120d        ;; อายุแพกเกจในแคช ผมใช้ 360d
...
[debian]
backends =
        http://linux.thai.net/debian
        http://ftp.us.debian.org/debian
        ...
...
[security]
backends =
        http://security.debian.org/debian-security
        ...
...
[debian-multimedia]
backends =
        http://debian-multimedia.org

[ubuntu]
backends =
        http://th.archive.ubuntu.com/ubuntu        
        http://mirror.in.th/ubuntu/archive
        ...
...
[ubuntu-security]
backends = 
        http://security.ubuntu.com/ubuntu
...

สั่งเริ่มใหม่

# /etc/init.d/apt-proxy restart

ก็สามารถใช้งานได้แล้ว

ที่เครื่องลูกข่าย

เวลาเรียกใช้งานจากเครื่องลูก เราแก้ไขไฟล์ /etc/apt/sources.list ให้มาใช้ของเรา

$ sudo vi /etc/apt/sources.list

ถ้าเป็นเดเบียน

deb     http://server1.example.com:9999/debian/ etch main contrib non-free
deb-src http://server1.example.com:9999/debian/ etch main contrib non-free
deb     http://server1.example.com:9999/security/ etch/updates main contrib non-free
deb-src http://server1.example.com:9999/security/ etch/updates main contrib non-free

ถ้าเป็นอูบุนตู

deb     http://server1.example.com:9999/ubuntu/ edgy main restricted universe multiverse
deb-src http://server1.example.com:9999/ubuntu/ edgy main restricted universe multiverse
deb     http://server1.example.com:9999/ubuntu/ edgy-updates main restricted universe multiverse
deb-src http://server1.example.com:9999/ubuntu/ edgy-updates main restricted universe multiverse
deb     http://server1.example.com:9999/ubuntu-security/ edgy-security main restricted universe multiverse
deb-src http://server1.example.com:9999/ubuntu-security/ edgy-security main restricted universe multiverse

หมายเหตุ

  • ตรง server1.example.com อาจใช้เป็นเลขไอพี เช่น 192.168.1.5 ก็ได้
  • สำหรับเครื่องแม่ข่ายเอง อาจใช้ของตัวเองโดยเปลี่ยน server1.example.com เป็น localhost ก็ได้
  • แพกเกจนี้ยังมีข้อผิดพลาดอยู่ เนื่องจากผู้พัฒนาเสียชีวิตไปเสียก่อน เมื่อเครื่องลูกข่ายรอนานผิดปกติ หรือเกิดข้อผิดพลาดขึ้น อาจต้องเริ่มเซอร์วิสที่เซิร์ฟเวอร์ใหม่บ้างเป็นบางครั้ง แต่ผมว่าคุ้มค่ากับการประหยัดแบนด์วิดท์ครับ
  • ผมเคยใช้เทียบกับ apt-cacher พบว่า apt-proxy ฉลาดกว่า เลยชอบใช้มากกว่า ถึงแม้จะยังมีบั๊กอยู่ ถ้าท่านใดมีประสบการณ์ apt-cacher รบกวนโพสต์เล่าให้ฟังบ้างนะครับ :)
  • ปัญหาเรื่อง apt-proxy ชอบค้าง ผมแก้ด้วยวิธีใช้ cron เข้าไปรีสตาร์ทเซอร์วิสใหม่ตอนเที่ยงคืนทุกวัน ก็พอแก้ปัญหาได้ระดับนึงครับ
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้