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

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

จากการทดลองใช้งานพบว่า ช้ากว่า apt-proxy (ซึ่งช่วงหลังมีปัญหาตายบ่อยมาก) แต่เสถียรกว่าเยอะ ใช้พอร์ต 9999 เป็นพอร์ตเดียวกับ apt-proxy ทำให้ปรับใช้แทน apt-proxy ได้อย่างง่ายดาย

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

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

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

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

# aptitude install approx

ตั้งค่าแพกเกจนิดหน่อย

# vi /etc/approx/approx.conf
...
#debian     http://ftp.debian.org/debian
debian     ftp://debianclub.org/debian
security   http://security.debian.org/debian-security
volatile   http://volatile.debian.org/debian-volatile
...

เริ่มใหม่

# /etc/init.d/approx restart

ใช้งานได้แล้ว

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

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

$ sudo vi /etc/apt/sources.list

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

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

ที่มา:

debianadmin.com: Upgrade multiple debian systems with Approx

หมายเหตุ

  • ตรง server1.example.com อาจใช้เป็นเลขไอพี 192.168.1.5 ก็ได้
  • สำหรับเครื่องแม่ข่ายเอง อาจใช้ของตัวเองโดยเปลี่ยน server1.example.com เป็น localhost ก็ได้
  • หากย้ายจาก apt-proxy มาใช้ approx แทน มีวิธีประหยัดแบนด์วิธเล็กน้อย คือเปลี่ยนพอร์ต apt-proxy เป็น 9998 และตั้งค่าคลังแพกเกจให้ approx เรียกใช้ apt-proxy จากพอร์ต 9998 นี้แทน เช่น
    # vi /etc/approx/approx.conf
    debian      http://localhost:9998/debian
    security    http://localhost:9998/security
    volatile    http://localhost:9998/volatile

    เป็นต้น ใช้งานสักสองสามวัน จนคลังของ approx เต็ม แล้วจึงค่อยเปลี่ยนกลับ

Topic: 
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้