ฉันจะตั้งค่า 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
และเฉพาะสำหรับตัวแปรที่จำเป็นแทนที่จะพูดว่า "เพียง แต่เอาเส้น"