จำกัดความเร็วของ apt-get ด้วย trickle

การติดตั้งซอฟต์แวร์ในเดเบียนทางอินเทอร์เน็ตโดย apt-get นั้นต้องใช้การดาวน์โหลดโดยใช้ ftp หรือ http ซึ่ง apt-get มีตัวดาวน์โหลดของมันเองคือ

/usr/lib/apt/methods/ftp

และ

/usr/lib/apt/methods/http

แต่มีข้อเสียคือมันบริโภคแบนวิดท์จนเกือบหมด ทำให้ทำอย่างอื่นแทบไม่ได้ เรามีวิธีแก้ไขได้หลายวิธี เช่น ทำ proxy ที่มีการจำกัดความเร็ว แล้วสั่งให้ apt-get ใช้ proxy ตัวนั้นทาง /etc/apt/apt.conf.d หรือกำหนดผ่านตัวแปรระบบชื่อ http_proxy และ ftp_proxy สำหรับวิธีที่ง่ายกว่านั้นคือ ใช้โปรแกรมที่ชื่อ trickle ครับ เริ่มด้วยติดตั้ง

$ sudo apt-get install trickle

การใช้งานก็ง่ายๆ เช่น

$ trickle -s -d 10 apt-get --download-only upgrade && apt-get upgrade

อธิบาย -d 10 คือจำกัดความเร็วที่ 10 KB/s

ถ้าไม่อยากสั่ง trickle ทุกครั้งก็อาจแก้ไขตัว ftp และ http ของ apt-get โดย

$ dpkg-divert --local --rename /usr/lib/apt/methods/http
$ cat > /usr/lib/apt/methods/http <<EOF
#!/bin/sh
/usr/bin/trickle -s -d 10 /usr/lib/apt/methods/http.distrib
EOF
$ chmod 755 /usr/lib/apt/methods/http

$ dpkg-divert --local --rename /usr/lib/apt/methods/ftp
$ cat > /usr/lib/apt/methods/ftp <<EOF
#!/bin/sh'
/usr/bin/trickle -s -d 10 /usr/lib/apt/methods/ftp.distrib
EOF
$ chmod 755 /usr/lib/apt/methods/ftp

จากนั้นก็ใช้งาน apt-get ตามปกติโดยไม่ต้องเรียก trickle เอง

จบครับ

Comments

ผมว่าใช้พวก apt-proxy หรือ apt-cacher น่าจะเป็นทางออกที่ดีกว่านะครับ
(เห็นใจพวกเดียวกันน่ะ :)

ปกติสั่ง apt อยากให้เสร็จเร็ว ๆ ครับ :P
เสร็จแล้ว จะได้มั่นใจว่า พร้อมจะทำงานอื่นครับ

แต่เจ้า trickle นี่น่าจะเป็น idea ไปใช้อย่างอื่นได้อีก ขอบคุณมากครับ :)
___
Neutron: Linux Addict!

เอาไว้ใช้ได้ เวลาเข้าไปฝาก apt ในเครือข่ายคนอื่นครับ จะได้ไม่โดนเพ่งเล็ง :)

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