apt-get behind proxy บน VirtualBox Ubuntu


คำตอบ:


8
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'


2
อีกสิ่งหนึ่งที่ควรทราบคือถ้ารหัสผ่านมี '@' แล้วแทนที่ด้วย '% 40' (โดยไม่ใส่เครื่องหมายอัญประกาศ) สิ่งอื่นจะไม่สามารถใช้งานได้
dotslash

8

ใน /etc/apt/apt.conf ให้เพิ่มบรรทัด:

Acquire::http::Proxy "http://MYDOMAIN\MYNAME:MYPASS@MY.PROXY.COM:MYPORT"

จาก: http://ubuntuforums.org/showthread.php?t=96802

(หมายเหตุ: ถูกขโมยโดยสิ้นเชิงจากคำตอบนี้สำหรับคำถามที่คล้ายกันของฉันใน SF. เครดิตไปที่Grizzly )


บรรทัดต้องลงท้ายด้วย;
Verma

ชื่อไฟล์ของฉันแตกต่างกัน แต่นี่คือสิ่งที่ใช้ได้กับฉัน/etc/apt/apt.conf.d/01proxy
Jackie

4

พร็อกซีที่ระบุไว้โดยการตั้งค่า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จะไม่ทำงาน
mliebelt

นี้env_resetสาย/etc/sudoersเป็นสิ่งสำคัญจริงๆ!
Ari

1
@Ari: ใช่มันเป็น; นั่นคือเหตุผลที่ผมแสดงให้เห็นถึงวิธีการปิดการใช้งานเฉพาะสำหรับapt-getและเฉพาะสำหรับตัวแปรที่จำเป็นแทนที่จะพูดว่า "เพียง แต่เอาเส้น"
DevSolar

@DevSolar: ใช่และบวก 1 สำหรับสิ่งนั้น!
Ari
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.