ฉันจะตั้งค่า apt-get เพื่อทำงานหลังพร็อกซีได้อย่างไร
ฉันจะตั้งค่า apt-get เพื่อทำงานหลังพร็อกซีได้อย่างไร
คำตอบ:
http_proxy="http://host:port" apt-get something
ควรทำงาน.
หากคุณต้องการการรับรองความถูกต้องลอง
http_proxy="http://user:pass@host:port" apt-get something
และถ้าคุณต้องการให้สิ่งนี้เป็น permenant คุณควรตั้งค่าตัวแปร http_proxy (และ ftp_proxy?) ในของคุณ~/.bashrcเพื่อให้แอปพลิเคชันที่สามารถใช้งานพร็อกซีของคุณสามารถทำงานได้ในอนาคตเช่น 'wget'
ใน /etc/apt/apt.conf ให้เพิ่มบรรทัด:
Acquire::http::Proxy "http://MYDOMAIN\MYNAME:MYPASS@MY.PROXY.COM:MYPORT"
จาก: http://ubuntuforums.org/showthread.php?t=96802
(หมายเหตุ: ถูกขโมยโดยสิ้นเชิงจากคำตอบนี้สำหรับคำถามที่คล้ายกันของฉันใน SF. เครดิตไปที่Grizzly )
;
/etc/apt/apt.conf.d/01proxy
พร็อกซีที่ระบุไว้โดยการตั้งค่าhttp_proxy, ftp_proxyและall_proxyตัวแปรสภาพแวดล้อมทั้งในประเทศ (เช่นใน~/.bashrc) หรือทั่วโลก (เช่นใน/etc/bash.bashrc) การตั้งค่าเหล่านี้ได้รับการยกย่องจากแพ็คเกจซอฟต์แวร์สุทธิทั้งหมด (เช่น apt-get, wget, curl ฯลฯ ):
# HTTP proxy without authentification
export http_proxy="http://host:port"
# HTTP proxy with authentification
export http_proxy="http://user:pass@host:port"
อย่างไรก็ตามการตั้งค่าด้วยวิธีนี้ไม่ได้ช่วยเมื่อทำงานsudo apt-get ...- และนั่นเป็นเพราะบรรทัดนี้ใน/etc/sudoers:
Defaults env_reset
บรรทัดนี้รีเซ็ตตัวแปรสภาพแวดล้อมทั้งหมดเมื่อใช้sudoเพื่อความปลอดภัย ในการเก็บค่าhttp_proxyฯลฯ ในการsudoเรียกใช้คุณสามารถระบุข้อยกเว้นenv_resetผ่านenv_keep:
# Exception specific to the command apt-get
Defaults!/usr/bin/apt-get env_keep="http_proxy https_proxy ftp_proxy"
# Exception specific to the user joe
Defaults:joe env_keep="http_proxy https_proxy ftp_proxy"
ด้วยวิธีนี้คุณจะได้รับapt-getเกียรติจากการตั้งค่าส่วนกลางสำหรับ http_proxy แทนการทำซ้ำการตั้งค่าสำหรับapt-getในไฟล์ปรับแต่ง apt เฉพาะไฟล์ arcane
sudo apt-get ...สำหรับสิ่งใด ดังนั้นหากไม่มีรายการนี้/etc/sudoersจะไม่ทำงาน
env_resetสาย/etc/sudoersเป็นสิ่งสำคัญจริงๆ!
apt-getและเฉพาะสำหรับตัวแปรที่จำเป็นแทนที่จะพูดว่า "เพียง แต่เอาเส้น"