Jawaban:
Dalam beberapa rilis, sudo dikonfigurasi sedemikian rupa sehingga semua variabel lingkungan dibersihkan saat menjalankan perintah. Untuk menjaga nilai http_proxy Anda dan memperbaikinya, Anda perlu mengedit / etc / sudoers, jalankan:
visudo
Kemudian temukan garis yang menyatakan:
Defaults env_reset
dan tambahkan setelahnya:
Defaults env_keep = "http_proxy ftp_proxy"
Semuanya akan mulai berfungsi seperti yang diharapkan.
Terima kasih kepada kdogksu di Forum Ubuntu untuk menemukan solusi untuk ini.
Untuk tidak hanya memperbaiki apt-get tetapi juga utilitas X11 grafis seperti eg synaptic, mintintall, ...) baris berikut di /etc/sudoers
harus melakukan pekerjaan:
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
Gunakan ini.
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
Inilah yang saya gunakan. Bekerja dengan sempurna.
Apt juga memungkinkan pengaturan individual untuk ditempatkan di file di bawah /etc/apt/apt.conf.d/
, jadi ini memiliki efek yang persis sama seperti di atas, tetapi mungkin lebih mudah untuk dipertahankan jika Anda memiliki baris lain di .conf
file:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
.
/etc/apt/apt.conf
atau menggunakan tempat file konfigurasi /etc/apt/apt.conf.d
.... berfungsi! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
Hal yang berhasil bagi saya adalah:
sudo http_proxy=http://yourserver apt-get update
Yang agak aneh karena hanya mengekspor http_proxy dan kemudian menjalankan sudo echo $ http_proxy dengan patuh mencetak nilai yang diekspor
$http_proxy
diperluas sebelum sudo dijalankan.
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
Ekspor seharusnya tidak perlu sudo
dan jika proxy Anda anonim, cukup parit proxyusername:proxypassword@
bagian itu.
wget
?
Jika ini adalah konfigurasi sementara , Anda dapat mencoba ini: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
Anda memerlukan ini, karena variabel lingkungan perlu didefinisikan untuk akun "root". Melakukan dan mengekspor sebelumnya seharusnya tidak berfungsi.
Untuk konfigurasi permanen , Anda harus memodifikasi file sistem. Ini sudah dijelaskan dalam jawaban berikut tentang Cara memeriksa proxy jaringan benar-benar diterapkan? .
Ubuntu sangat memusuhi proksi otentikasi. Saya menggunakan laptop Ubuntu di tempat kerja dan jumlah kerusakannya luar biasa.
Synaptic, Apt, Firefox, Chromium, dll semuanya menggunakan metode yang berbeda untuk menentukan proxy dan tidak ada tempat untuk menentukan kredensial dengan aman.
Beberapa bug pada subjek: https://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
Saran Oli untuk menggunakan ekspor adalah satu-satunya cara yang samar-samar aman untuk melakukannya. Terkadang juga mungkin untuk "memalsukan" dukungan proxy jika server proxy menggunakan otentikasi sekunder untuk meminimalkan beban pada server otentikasi utama (misalnya, mungkin Active Directory). Di sinilah koneksi proxy pertama diautentikasi oleh proxy terhadap AD, kemudian untuk periode waktu yang ditentukan (biasanya 5 menit) semua koneksi lain "dipercaya" untuk menjadi pengguna itu. Oleh karena itu, Anda dapat membuka firefox, menjelajah internet (di mana saja akan melakukannya), kemudian mencoba utilitas Anda (wget, sinaptik, apa pun) dengan menentukan proxy, tetapi biarkan nama pengguna kosong.
Ubuntu umumnya memusuhi lingkungan perusahaan apa pun hanya karena memungkinkan kata sandi untuk dibaca dengan mudah. Kuda laut adalah penyebab utama, tetapi Network Manager juga mengejutkan - sambungkan ke jaringan autentikasi PEAP dan Anda baru saja menyimpan kata sandi Anda di applet agar siapa pun dapat melihat siapa yang mungkin meminjam laptop Anda. Rupanya berbagi laptop dianggap sebagai penistaan di tanah Linux, karena pengembang kuda laut menolak klaim rasa tidak aman. Setelah itu, saya tidak tega menghubungi manajer jaringan-manajer.
Apakah Anda mencoba mengedit /etc/apt/apt.conf
? Saya menggunakan ini untuk menggunakan apt di belakang proksi perusahaan kami.
Acquire::http::proxy "http://user:password@host:port/";
Saya percaya bahwa apt menggunakan nilai ini kecuali $ http_proxy didefinisikan di lingkungan shell Anda (yaitu $ http_proxy diutamakan).
apt.conf
masih harus digunakan. Anda dapat melihat pengaturan konfigurasi yang menurutnya telah diatur dengan menggunakan apt-config dump
.
Jika Anda ingin menjalankan "sudo apt-get update" melalui proxy di commandline, gunakan perintah di bawah ini,
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;