कमांडलाइन में प्रॉक्सी के माध्यम से "sudo apt-get update" कैसे चलाएं?


78

अपने कार्यालय में मैं (wget) के माध्यम से अपडेट और डाउनलोड करना चाहता हूं और यहां वे प्रॉक्सी का उपयोग कर रहे हैं?

मैं कमांडलाइन द्वारा यह कैसे कर सकता हूं?


जवाबों:


91

कुछ रिलीज़ में sudo को इस तरह से कॉन्फ़िगर किया गया है कि कमांड चलाते समय सभी पर्यावरण चर सभी साफ़ हो जाते हैं। अपने http_proxy का मान रखने के लिए और इसे ठीक करने के लिए, आपको संपादित करना होगा / etc / sudoers, run:

visudo

फिर एक पंक्ति खोजें जो बताता है:

Defaults env_reset 

और इसके बाद जोड़ें:

Defaults env_keep = "http_proxy ftp_proxy" 

हालात उम्मीद के मुताबिक काम करने लगेंगे।

इसके लिए समाधान खोजने के लिए उबंटू मंचों में kdogksu का धन्यवाद ।

न केवल apt-get को बल्कि ग्राफिकल X11 के बर्तनों को भी ठीक करने के लिए जैसे कि synaptic, mintintall, ...) में निम्नलिखित पंक्ति /etc/sudoersकाम करना चाहिए:

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"

7
क्या "https_proxy" भी जोड़ना आवश्यक होगा?
टेनलिफ्टफिंगर

2
$ निर्यात http_proxy = " उपयोगकर्ता: पासवर्ड @ प्रॉक्सी-सर्वर: पोर्ट " और यदि आपके पासवर्ड में विशेष वर्ण हैं - cyberciti.biz/faq/…
Alex Punnen

2
'env_reset' के बाद 'env_keep' को जोड़ा जाना चाहिए या उसकी जगह पर रखा जाना चाहिए? वे एक-दूसरे के विरोधी दिखते हैं, तो क्या दोनों को रखने में समझदारी है?
रॉड्रिगो

Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY" ने मेरे लिए काम किया! धन्यवाद ! -
रोनाल्ड

1
बहुत ब्राउज़िंग के बाद इस पर ठोकर खाई। इससे मेरी समस्या हल हो गई।
सुदीप्त बसक

39

इसे इस्तेमाल करो।

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

यही है वह जो मेरे द्वारा उपयोग किया जाता है। अच्छी तरह से काम।

Apt भी अलग-अलग सेटिंग्स को फाइलों के नीचे रखने की अनुमति देता है /etc/apt/apt.conf.d/, इसलिए इसका ठीक ऊपर जैसा ही प्रभाव पड़ता है, लेकिन अगर .confफाइल में अन्य लाइनें हैं, तो इसे बनाए रखना आसान हो सकता है :

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

5
मैं यह सलाह देता हूं कि कॉन्फ़िगरेशन फ़ाइल में उस लाइन को कैसे जोड़ा जाए, यह समझाने के लिए इसे संपादित करें। कमांड-लाइन पर उन लाइनों को चलाने का प्रयास यह नहीं करेगा। अभी यह उत्तर एक सही विचार पर आधारित है, लेकिन किसी नौसिखिए के लिए उपयोगी नहीं होगा। यह भी पूरी तरह से स्पष्ट नहीं है तुम कह रहे हो कि उस लाइन जोड़ा जाना चाहिए करने के लिए apt.conf
एलियाह कगन

बहुत बढ़िया !!!! आकर्षण की तरह काम करता है
शांतनु बेदजाना

मेरे सिस्टम पर मुझे
/etc/apt/apt.conf.d के

1
@dldnh: आप फ़ाइल बना सकते हैं /etc/apt/apt.confया एक कॉन्फ़िग फ़ाइल का उपयोग कर सकते हैं /etc/apt/apt.conf.d.... या तो काम करता है! :-)
पॉल कैलाब्रो

अर्धविराम को न भूलें या आपको मिलेगाE: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
फ्लोरियन कैस्टेलन

18

मेरे लिए काम करने वाली चीज़ थी:

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

जो थोड़ा अजीब है क्योंकि बस http_proxy निर्यात करना और फिर sudo echo $ $ चलाना_ http_proxy आज्ञाकारी रूप से निर्यात मूल्य मुद्रित किया जाता है


1
$http_proxyसुडो के चलने से पहले ही विस्तार हो जाता है।
जेरेमी सूची

1
यह एक डॉकरफाइल में महान काम किया!
Cory Ringdahl

यदि आवश्यक हो तो प्रॉक्सी के लिए पोर्ट मत भूलना :)
गिल्ड पेलेग

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

निर्यात को sudoआईएनजी की जरूरत नहीं है और यदि आपका प्रॉक्सी अनाम है, तो बस proxyusername:proxypassword@हिस्सा खोदें ।


:-(, मुझे त्रुटि मिल रही है "वेब प्रॉक्सी सेवा तक पहुँच से वंचित!"
Renjith G

क्या समान प्रॉक्सी सेटिंग्स कुछ सरल की तरह काम करती हैं wget?
ओली

जी हां .. यही त्रुटि दोहराई गई ...
Renjith G

2
Acetire के साथ /etc/apt/apt.conf के संपादन के बारे में क्या :: :: :: प्रॉक्सी " MYDOMAIN \ MYNAME: MYPASS@MY.PROXY.COM: MYPORT"?
रेनजिथ जी

आप इसे अपने ~ / .bashrc पर भी जोड़ सकते हैं। भयानक सुरक्षा जोखिम हालांकि।
स्कैन्स

3

यदि यह एक अस्थायी कॉन्फ़िगरेशन है , तो आप यह कोशिश कर सकते हैं: sudo bash -c 'http_proxy = "http: // <xy_host>: <xy_port> /" apt-get update'

आपको इसकी आवश्यकता है, क्योंकि पर्यावरण चर को "रूट" खाते के लिए परिभाषित करने की आवश्यकता है। काम करने से पहले करना और निर्यात नहीं करना चाहिए।

एक स्थायी कॉन्फ़िगरेशन के लिए , आपको एक सिस्टम फ़ाइल को संशोधित करना होगा। यह पहले से ही निम्नलिखित उत्तर में वर्णित है कि नेटवर्क प्रॉक्सी को कैसे जांचें कि क्या वास्तव में लागू किया गया है?


:-(, मुझे त्रुटि मिल रही है "वेब प्रॉक्सी सेवा तक पहुँच से वंचित!"
Renjith G

आपको शायद एक लॉगिन और पासवर्ड दर्ज करना है, क्या आपको? यदि ऐसा है तो http_proxy के पास "http: // <user>: <pass> @ <host>: <port> /"
Huygens

3

उबंटू प्रमाणिकता को प्रमाणित करने के लिए अविश्वसनीय रूप से शत्रुतापूर्ण है। मैं काम में उबंटू लैपटॉप का उपयोग करता हूं और टूटने की संख्या अविश्वसनीय है।

Synaptic, Apt, Firefox, Chromium, आदि सभी प्रॉक्सी को निर्दिष्ट करने के लिए विभिन्न विधियों का उपयोग करते हैं और सुरक्षित रूप से क्रेडेंशियल्स निर्दिष्ट करने के लिए कहीं नहीं हैं।

इस विषय पर कुछ कीड़े: 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

एक निर्यात का उपयोग करने के लिए ओली का सुझाव इसे करने का एकमात्र सुरक्षित तरीका है। यदि प्रॉक्सी सर्वर मुख्य प्रमाणीकरण सर्वर पर लोड को कम करने के लिए द्वितीयक प्रमाणीकरण का उपयोग कर रहा है (शायद सक्रिय निर्देशिका कहते हैं) तो प्रॉक्सी सपोर्ट को "ठगना" करना भी कभी-कभी संभव है। यह वह जगह है जहां पहले प्रॉक्सी कनेक्शन को एडी के खिलाफ प्रॉक्सी द्वारा प्रमाणित किया जाता है, फिर एक निर्धारित समय अवधि (आमतौर पर 5 मिनट) के लिए अन्य सभी कनेक्शन उस उपयोगकर्ता के लिए "विश्वसनीय" होते हैं। इसलिए, आप फ़ायरफ़ॉक्स खोल सकते हैं, इंटरनेट ब्राउज़ कर सकते हैं (कहीं भी करेंगे), फिर एक प्रॉक्सी निर्दिष्ट करके अपनी उपयोगिता (wget, synaptic, जो भी हो) का प्रयास करें, लेकिन उपयोगकर्ता नाम रिक्त छोड़ दें।

उबंटू आमतौर पर किसी भी कॉर्पोरेट वातावरण के लिए शत्रुतापूर्ण है क्योंकि यह पासवर्ड को इतनी आसानी से पढ़ने की अनुमति देता है। Seahorse एक प्रमुख अपराधी है, लेकिन नेटवर्क प्रबंधक भी चौंकाने वाला है - किसी भी PEAP प्रमाणीकृत नेटवर्क से कनेक्ट करें और आपने किसी के लिए ऐपलेट में अपना पासवर्ड संग्रहीत किया है, यह देखने के लिए कि कौन आपका लैपटॉप उधार ले सकता है। सीहोर डेवलपर्स ने असुरक्षा के दावों को खारिज कर दिया है, क्योंकि लिनक्स भूमि में स्पष्ट रूप से लैपटॉप साझाकरण को पवित्र माना जाता है। उसके बाद, मेरे पास नेटवर्क-मैनेजर देवों से संपर्क करने का दिल नहीं था।


मैं cntlm को इसके इलाज के लिए सलाह देता हूं। यह AD से प्रमाणित होता है और आपने अपनी सभी प्रॉक्सी सेटिंग 127.0.0.1 का उपयोग करने के लिए बिना किसी क्रेडेंशियल की आवश्यकता के सेट किया है।
laz

यदि आपको किसी अन्य मशीन के साथ प्रमाणित करने की आवश्यकता है, तो पासवर्ड प्लेटेक्स्ट को संग्रहीत करने की आवश्यकता है। "एन्क्रिप्शन" किसी भी सुरक्षा को नहीं जोड़ेगा, क्योंकि पासवर्ड उपलब्ध होने के लिए एन्क्रिप्शन कुंजी को उसी डिवाइस पर संग्रहीत करने की आवश्यकता है।
जेरेमी सूची

जेरेमी, आप सीहोरस देव के रूप में सुरक्षा के लिए समान / बंद दृष्टिकोण ले रहे हैं। मैं इस सामान को असंभव बनाने के लिए नहीं कह रहा हूं, बस इसे कठिन बनाएं। अभी, एक अनलॉक किए गए उबंटू लैपटॉप से ​​क्रेडेंशियल्स चोरी करना तुच्छ है - शायद पांच क्लिक और आपको मिल गया है। वही विंडोज का सच नहीं है - यह अभी भी संभव हो सकता है, लेकिन यहां तक ​​कि मुझे नहीं पता कि यह कैसे करना है। विंडोज मशीन से पासवर्ड को उठाने का कोई सरल तरीका नहीं है 10 मिनट में या तो आप दुर्घटना द्वारा खुला कार्य केंद्र छोड़ सकते हैं। उबंटू में भी ऐसा ही करें और आपके इस्तीफे में भी हाथ हो सकता है। यह काफी अच्छा नहीं है।
8:25 बजे

3

क्या आपने संपादन का प्रयास किया /etc/apt/apt.conf? मैं इसका उपयोग हमारे कॉर्पोरेट प्रॉक्सी के पीछे उपयुक्त का उपयोग करने के लिए करता हूं।

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

मेरा मानना ​​है कि उपयुक्त इस मूल्य का उपयोग तब तक करता है जब तक कि आपके शेल वातावरण में $ http_proxy परिभाषित न हो (अर्थात $ http_proxy पूर्वता लेता है)।


मुझे यकीन नहीं है कि apt.conf अभी भी उपयोग में है ... जब मैंने 8.04 से 10.04 तक अपडेट किया तो मैं असंभव अपडेट के साथ समाप्त हो गया, जब तक मुझे उस फ़ाइल में प्रॉक्सी सेटिंग्स से छुटकारा नहीं मिला - तब Synaptic में सेट प्रॉक्सी सेटिंग्स शुरू हो गईं फिर से काम ...
लिटिल जवा

यह अजीब है - मैं 10.04 के साथ apt.conf का उपयोग करता हूं। मुझे लगता है कि इस फ़ाइल में सेटिंग्स Synaptic पैकेज प्रबंधक वरीयताओं में कॉन्फ़िगर किए गए से अलग हैं।
जॉन ब्रेट

1
हाँ, apt.confअभी भी इस्तेमाल किया जाना चाहिए। आप देख सकते हैं कि कॉन्फ़िगरेशन सेटिंग्स क्या सोचती है कि इसका उपयोग करके सेट किया गया है apt-config dump
स्टीव बीटटी

0

यदि आप कमांड में प्रॉक्सी के माध्यम से "sudo apt-get update" चलाना चाहते हैं, तो कमांड के नीचे उपयोग करें,

sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.