“Sudo apt-get update” komut satırında proxy üzerinden nasıl çalıştırılır?


Yanıtlar:


91

Bazı sürümlerde sudo, komutu çalıştırırken tüm ortam değişkenlerinin tümü silinecek şekilde yapılandırılmıştır. Http_proxy'nizin değerini korumak ve bunu düzeltmek için, / etc / sudoers dosyasını düzenlemeniz, çalıştırmanız gerekir:

visudo

O zaman şunu belirten bir çizgi bulun:

Defaults env_reset 

ve ondan sonra ekleyin:

Defaults env_keep = "http_proxy ftp_proxy" 

İşler beklendiği gibi çalışmaya başlayacak.

Bunun için çözüm bulmak için Ubuntu Forumlarındaki kdogksu'ya teşekkürler .

Sadece apt-get'i düzeltmek için değil, aynı zamanda grafik X11, örneğin synaptic, mintintall, ... gibi grafiksel işlemler /etc/sudoersyapmak için aşağıdaki satırı da yapmalıdır:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"

7
Çok "https_proxy" eklemek gerekli midir?
TenLeftFingers

2
$ export http_proxy = " user: password @ proxy-server: port " ve şifreniz özel karakterler içeriyorsa - cyberciti.biz/faq/…
Alex Punnen

2
'env_keep', 'env_reset' ifadesinden sonra eklenmeli veya yerine yerleştirilmeli mi? Birbirlerine karşı görünüyorlar, bu yüzden ikisini de korumanın anlamı var mı?
Rodrigo,

Varsayılan değerler env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY" benim için çalıştı! Teşekkürler ! -
Ronald

1
Çok sayıda taramadan sonra bu tökezledi. Bu benim sorunumu çözdü.
Sudipta Basak

39

Bunu kullan.

ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";

Kullandığım şey bu. Mükemmel çalışıyor.

Apt ayrıca bireysel ayarların altındaki dosyalara yerleştirilmesine izin verir /etc/apt/apt.conf.d/, bu yüzden yukarıdaki ile tamamen aynı etkiye sahiptir, ancak .confdosyada başka satırlar varsa bakımı daha kolay olabilir :

ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";

5
Bu satırı yapılandırma dosyasına nasıl ekleyeceğinizi açıklamak için bunu düzenlemenizi öneririm. Bu satırları komut satırında çalıştırmaya çalışmak bunu yapmaz. Şu anda bu cevap doğru bir fikre dayanıyor ancak acemiler için yardımcı olmayacak. Bu, söz konusu satır söylüyorsun hatta tamamen net değil eklenmelidir için apt.conf.
Eliah Kagan

harika !!!! çekicilik gibi çalışır
Shantanu Bedajna

Sistemimde /etc/apt/apt.conf.d altında bir dosya oluşturmak zorunda kaldım, ancak küçük detay - çok iyi çalıştı
dldnh

1
@dldnh: Dosyayı oluşturabilir /etc/apt/apt.confveya bir config dosyasını yerleştirmek için /etc/apt/apt.conf.d.... kullanabilirsiniz . :-)
Paul Calabro

noktalı virgül unutmayın ya da alırsınızE: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
Florian Castellane

18

Benim için çalışan şey şuydu:

sudo http_proxy=http://yourserver apt-get update

Bu biraz garip çünkü sadece http_proxy dışa aktarıyor ve sonra sudo echo $ http_proxy çalıştırılıyor itaatkar bir şekilde dışa aktarılan değeri yazdırıyor


1
$http_proxysudo koşmadan önce genişler.
Jeremy List

1
Bu Dockerfile'de harika çalıştı!
Cory Ringdahl

Gerekirse vekil için limanı unutma :)
Gilad Peleg

11
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update

Dışa aktarma sudoişlemine gerek kalmamalı ve proxy'niz anonim ise, sadece proxyusername:proxypassword@bölümü atmalısınız .


:-(, "Web proxy hizmetine erişim reddedildi!"
Hatası alıyorum

Aynı proxy ayarları, basit bir şey için çalışıyor wgetmu?
Oli

evet .. aynı hata tekrarlanıyor ...
Renjith G

2
/Etc/apt/apt.conf dosyasını Acquire :: http :: Proxy " MYDOMAIN \ MYNAME: MYPASS@MY.PROXY.COM: MYPORT" ile düzenlemeye ne dersiniz ?
Renjith G

Bunu ~ / .bashrc dosyasına da ekleyebilirsiniz. Yine de korkunç güvenlik riski.
Scaine,

3

Bir ise geçici yapılandırma , bu deneyebilirsiniz: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'

Buna ihtiyacınız var çünkü ortam değişkeninin "root" hesabı için tanımlanması gerekiyor. Daha önce yapmak ve ihraç etmek işe yaramaz.

Bir İçin Kalıcı yapılandırma , bir sistem dosyasını değiştirmek zorunda kalacaktır. Bu, Ağ proxy'sinin gerçekten uygulanıp uygulanmadığı ile ilgili aşağıdaki yanıtta açıklanmıştır. .


:-(, "Web proxy hizmetine erişim reddedildi!"
Hatası alıyorum

Muhtemelen bir kullanıcı adı ve şifre girmeniz gerekiyor, değil mi? Öyleyse, http_proxy "http: // <kullanıcı>: <pass> @ <ana bilgisayar>: <bağlantı noktası> /" biçiminde olmalıdır
Huygens

3

Ubuntu, kimlik doğrulaması yapan proxy sunucularına inanılmaz derecede düşmanca davranıyor. İşyerinde Ubuntu dizüstü bilgisayar kullanıyorum ve kırılma sayısı inanılmaz.

Synaptic, Apt, Firefox, Chromium, vb. Hepsi bir vekil belirlemek için farklı yöntemler kullanır ve kimlik bilgilerini güvenli bir şekilde belirtecek hiçbir yer yoktur.

Konuyla ilgili bazı hatalar: 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

Oli'nin bir ihracat kullanması önerisi, bunu yapmanın tek belirsiz yolu. Proxy sunucusu ana kimlik doğrulama sunucularındaki yükü en aza indirmek için ikincil kimlik doğrulaması kullanıyorsa bazen proxy desteğini "fudge etmek" de mümkündür (belki de Active Directory). Bu, ilk proxy bağlantısının AD'ye karşı proxy tarafından doğrulandığı, ardından belirli bir süre boyunca (genellikle 5 dakika), diğer tüm bağlantıların bu kullanıcı olarak "güvenilir" olduğu yerdir. Bu nedenle, bir proxy belirterek firefox'u açabilir, internette gezinebilir (her yerde yapacağınız), yardımcı programınızı deneyebilirsiniz (wget, synaptic, ne olursa olsun), ancak kullanıcı adını boş bırakın.

Ubuntu genellikle herhangi bir şirket ortamına düşmandır, çünkü şifrelerin çok kolay okunmasını sağlar. Seahorse birinci sınıf bir suçludur, ancak Ağ Yöneticisi de şok edicidir - herhangi bir PEAP onaylı ağına bağlanın ve dizüstü bilgisayarınızı ödünç alabilecek birini görmesi için şifrenizi uygulamada sakladınız. Seahorse geliştiricileri güvensizlik iddiasını reddettiği için dizüstü bilgisayar paylaşımının Linux ülkesinde kutsal olduğu düşünülüyor. Ondan sonra, ağ yöneticisi devs ile iletişim kuracak kalbim yoktu.


Bunun için bir tedavi olarak cntlm öneririz. AD ile kimlik doğrulaması yapar ve tüm proxy ayarlarınızı herhangi bir kimlik bilgisi gerektirmeden 127.0.0.1 kullanacak şekilde ayarlarsınız.
laz

Başka bir makine ile kimlik doğrulaması yapmanız gerekiyorsa, o zaman parola düzyazısının kaydedilmesi gerekir. "şifreleme" herhangi bir güvenlik sağlamaz, çünkü şifrenin kullanılabilmesi için şifreleme anahtarının aynı cihazda saklanması gerekir.
Jeremy Liste

Jeremy, Seahorse dev'leriyle aynı güvenlik açık / kapalı yaklaşımını kullanıyorsun. Bunları imkansız kılmak demiyorum, sadece zorlaştırın. Şu anda, kilidi açılmamış bir Ubuntu dizüstü bilgisayardan kimlik bilgilerini çalmak önemsizdir - belki beş tıklama ve elinizde. Aynı şey Windows için de geçerli değil - yine de mümkün olabilir, ama nasıl yapılacağını bile bilmiyorum. Bir şifreyi 10 dakika içinde bir Windows makinesinden kaldırmanın basit bir yolu yoktur, bu yüzden bir iş istasyonunu kazayla açabilirsiniz. Aynısını Ubuntu'da da yapın, istifanıza da katılabilirsiniz. Yeterince iyi değil.
Scaine

3

Düzenlemeyi denediniz /etc/apt/apt.confmi? Bunu kurumsal vekilimizin arkasında apt kullanmak için kullanıyorum.

Acquire::http::proxy "http://user:password@host:port/";

Kabuk ortamınızda $ http_proxy tanımlanmadıkça apt'nin bu değeri kullandığına inanıyorum (yani $ http_proxy öncelik taşır).


Apt.conf'un hala kullanımda olduğundan emin değilim ... 8.04 - 10.04 arasında güncellediğimde, bu dosyadaki proxy ayarlarından kurtulana kadar, imkansız bir güncelleme ile bitirdim - daha sonra Synaptic'te ayarlanan proxy ayarları başladı. tekrar çalışmak ...
Küçük Jawa 17:10

Bu garip - ben 10.04 ile apt.conf kullanın. Bu dosyadaki ayarları Synaptic paket yöneticisi tercihleri ​​gui'de ayarlananlardan farklı buluyorum.
Jon Brett,

1
Evet, apt.confhala kullanılmalı. Hangi konfigürasyon ayarlarının apt tarafından ayarlanmış olduğunu düşündüğünü görebilirsiniz apt-config dump.
Steve Beattie

0

“Sudo apt-get update” komutunu proxy üzerinden komut satırında çalıştırmak istiyorsanız, aşağıdaki komutu kullanın,

sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.