मुझे प्रॉक्सी के माध्यम से काम करने के लिए ऐड-ऑप-रिपॉजिटरी कैसे मिलेगी?


119

मैं wiki.linaro.org (मेरे Ubuntu 10.04 वीएम पर) निर्देश "उबंटू 10.04 (ल्यूसिड) और 10.10 (मावेरिक) होस्ट्स पर इंस्टॉलेशन क्रॉस टूलचैन का पालन करने की कोशिश कर रहा हूं । पहला कदम है:

sudo add-apt-repository ppa:linaro-maintainers/toolchain

लेकिन जब मुझे लगता है कि मैं दौड़ता हूं:

Error reading https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain: <urlopen error [Errno 110] Connection timed out>

मुझे लगता है कि समस्या मेरे नियोक्ता के प्रॉक्सी सर्वर के लिए मेरे कॉन्फ़िगरेशन के साथ है, विशेष रूप से HTTPS के लिए।

जब मैंने फ़ायरफ़ॉक्स में https://launchpad.net/api/1.0/~linaro-maintainers/+archive/toolchain खोला , तो मुझे "कनेक्शन का समय समाप्त हो गया" मिला। मैं फिर फ़ायरफ़ॉक्स प्राथमिकताएँ -> उन्नत -> नेटवर्क -> सेटिंग्स ... में गया और HTTP प्रॉक्सी को "गेटवे" और पोर्ट को 8080 पर सेट किया, और "सभी प्रोटोकॉल के लिए इस प्रॉक्सी सर्वर का उपयोग करें" की जाँच की। फिर पेज लोड किया गया। यह मेरे सिद्धांत का समर्थन करता है।

मैंने http_proxy और https_proxy वातावरण चर स्थापित करने की कोशिश की है (दोनों निचले और ऊपरी मामले):

$ set | grep -i proxy
HTTPS_PROXY=https://gateway:8080
HTTP_PROXY=http://gateway:8080
http_proxy=http://gateway:8080
https_proxy=https://gateway:8080

मैंने उन्हें बदलने की भी कोशिश की:

$ set | grep -i proxy
HTTPS_PROXY=gateway:8080
HTTP_PROXY=gateway:8080
http_proxy=gateway:8080
https_proxy=gateway:8080

और मैंने इस दूसरी पंक्ति को /etc/apt/apt.conf में जोड़ने का प्रयास किया:

Acquire::http::proxy "http://gateway:8080/";
Acquire::https::proxy "https://gateway:8080/";

लेकिन मुझे वही त्रुटि मिलती रहती है।

मैं इसका निवारण कैसे करूँ?

अपडेट: मैंने "रिपॉजिटरी को जोड़ने और प्रॉक्सी से टर्मिनल से कनेक्ट करने में समस्या" के स्वीकृत उत्तर में निर्देशों का पालन किया और आगे मिला:

$ sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpgkeys: HTTP fetch error 7: couldn't connect to host
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

मुझे आश्चर्य है कि अगर "HTTP लाने में त्रुटि" का अर्थ है कि मुझे "Defaults env_keep = http_proxy" को भी जोड़ना होगा /etc/sudoers...

अपडेट # 2: मैंने जोड़ा:

Defaults env_keep="http_proxy"
Defaults env_keep="https_proxy"

... टिप्पणी के रूप में बग के लिए 18 में 516032 , लेकिन मुझे अभी भी वही "gpgkeys: HTTP लाने की त्रुटि 7: मेजबान की त्रुटि" से कनेक्ट नहीं कर सका।

और यह उत्सुक है:

$ sudo env | grep proxy
https_proxy=https://gateway:8080

... क्योंकि http_proxy नहीं है।

किसी भी सलाह की सराहना की है।

अपडेट # 3: चूंकि मेरे वीएम का होस्ट एक लैपटॉप है, इसलिए मैं इसे घर ले गया और वहां (बिना परदे के) के साथ आजमाया:

$ sudo add-apt-repository ppa:linaro-maintainers/toolchain
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 1DD749B890A6F66D050D985CF1FCBACA7BE1F97B
gpg: requesting key 7BE1F97B from hkp server keyserver.ubuntu.com
gpg: key 7BE1F97B: public key "Launchpad Linaro Overlay PPA" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

इसने काम कर दिया। तो समस्या प्रॉक्सी कॉन्फ़िगरेशन से संबंधित है। लेकिन मुझे लगता है कि मेरे पास वर्कअराउंड है।


बस संदर्भ के लिए askubuntu.com/questions/60217/…
दीपक राजपूत

जवाबों:


183

प्रॉक्सी को कॉन्फ़िगर करने के अलावा, विकल्प के sudoसाथ पर्यावरण को संरक्षित करने के लिए कहें -E:

export http_proxy=http://<proxy>:<port>
export https_proxy=http://<proxy>:<port>
sudo -E add-apt-repository ppa:linaro-maintainers/toolchain

उपयोगकर्ता नाम और पासवर्ड के साथ:

export https_proxy=https://<username>:<password>@<proxy>:<port>

हां वास्तव में काम किया
शशवत कुमार

14
-ई (उपरोक्त सभी अन्य सामान करने के बाद) यह मेरे लिए काम कर रहा है।
cschooley

2
और हां, https_proxyकॉन्फ़िगरेशन आवश्यक था ...: पी
मोनकुट

1
स्थायी रूप से प्रॉक्सी कैसे जोड़ें और ई-स्विच से बचें? मैंने / etc / एन्वायरनमेंट फ़ाइल को लाइनों को जोड़ने के साथ ठीक से कॉन्फ़िगर किया है ... धन्यवाद
एनरिक

1
से man sudo: -E, --preserve-envसुरक्षा नीति को इंगित करता है कि उपयोगकर्ता अपने मौजूदा पर्यावरण चर को संरक्षित करना चाहता है। यदि उपयोगकर्ता के पास पर्यावरण को संरक्षित करने की अनुमति नहीं है तो सुरक्षा नीति में एक त्रुटि हो सकती है।
पाब्लो ए

39

प्रॉक्सी के पीछे gpg कुंजी जोड़ने के लिए टर्मिनल में निम्नलिखित कोड का उपयोग करें,

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY

और उसके अनुसार अपरकेस अक्षरों को बदलें। यदि आप http-proxy=http://PROXY_URL:PORT/इसके बजाय किसी उपयोगकर्ता प्रमाणीकरण (यानी, उपयोगकर्ता नाम और पासवर्ड) के बिना एक प्रॉक्सी का उपयोग कर रहे हैं ।

उदाहरण के लिए GPG_KEY=C2514567EEA14886आप का उपयोग कर सकते हैं,

sudo apt-key adv --keyserver-options http-proxy=http://user:abc123@10.10.2.21:3128/ --keyserver keyserver.ubuntu.com --recv-keys C2514567EEA14886

कहाँ पे,

USER_ID=user
PASSWORD=abc123
PROXY_URL=10.10.2.21
PORT=3128

यदि आपके पास उपयोगकर्ता प्रमाणीकरण नहीं है तो बस उपयोग करें,

sudo apt-key adv --keyserver-options http-proxy=http://10.10.2.21:3128/ --keyserver keyserver.ubuntu.com --recv-keys C2514567EEA14886

3
यह वास्तव में ऐड-ऑप-रिपॉजिटरी कमांड के निष्पादन को "ठीक" नहीं करता है। वास्तव में यह अपने एक कार्य के आसपास काम करता है। कम से कम एक अतिरिक्त आदेश आवश्यक है: sudoedit /etc/apt/sources.list.d/XXXX.list + मैन्युअल संस्करण को डिबेट URL जोड़ने के लिए ...
Chucky

अगर आप कुछ जानकारी जोड़ते हैं कि प्रॉक्सी को अनंत काल तक कैसे ठीक किया जाए तो सही होगा। आपके द्वारा दिए गए समाधान के लिए बहुत कुछ आवश्यक है
Danatela

9

आखिरकार! आपको https_proxy सेट करना होगा:

export https_proxy=....

केवल सेट http_proxy पर्याप्त नहीं है।

और मुझे ऐड-ऑप-रिपॉजिटरी कमांड को रूट के रूप में निष्पादित करने की आवश्यकता थी, न कि सुडो के माध्यम से।

कोड:

sudo su
add-apt-repository ppa:........

6

ऐसा लगता है कि प्रॉक्सी कॉन्फ़िगरेशन सेट है, लेकिन किसी तरह सर्वर से संपर्क नहीं किया जा सकता ...

मेरे पास एक बहुत ही समान मुद्दा था जिसे मैंने इस तरह हल किया: कॉर्पोरेट प्रॉक्सी सुरक्षा कारणों से केवल 80 और 443 पोर्ट की अनुमति देता है, इसलिए जब यह सेटअप होता है, तब से एचकेपी प्रोटोकॉल पोर्ट 11371 का उपयोग कर रहा है, यह आपको गुजरने नहीं देगा।

तो, SSH-ing से कम और बाहर आपके किसी सर्वर से कुंजी प्राप्त करना, इसे डाउनलोड करना और इसे स्थानीय रूप से इंस्टॉल करना, आप नीचे सूचीबद्ध लोगों में से मुख्य सर्वर को निर्दिष्ट कर सकते हैं और पोर्ट निर्दिष्ट कर सकते हैं:

http://sks-keyservers.net/overview-of-pools.php

उदाहरण के लिए:

apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys XXXXX

बूम, वोइला!


हाँ। यह काम मेरे लिए, डेबियन 7 पर मोनो स्थापित करते समय:sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
केन

3

आपके sudoersपरिवर्तन के कारण अपेक्षा के अनुरूप काम नहीं किया गया है:

    Defaults env_keep="http_proxy"
    Defaults env_keep="https_proxy"

आपको लिखा होना चाहिए:

    Defaults env_keep+="http_proxy"
    Defaults env_keep+="https_proxy"

यह भी सुनिश्चित करें के बीच की जगह बनाने के Defaultsऔर env_keepएक टैब हर बार है।


3

मैं संपादन /usr/lib/python3/dist-packages/softwareproperties/ppa.pyऔर जोड़कर इसे हल करने में कामयाब रहा

"--keyserver-options", "http-proxy=<proxy_url>",

निम्नलिखित लाइन के तहत

"--keyserver", self.keyserver,

अधिक पृष्ठभूमि की जानकारी

ppa.pypython स्क्रिप्ट है जिसका उपयोग add-apt-repositorygpg को कॉल करने के लिए किया जाता है । कभी-कभी gpg के साथ एक बग प्रतीत होता है जहां यह http_proxy पर्यावरण चर का उपयोग नहीं करता है। इसकी पुष्टि फ़ाइल /root/.gnupg/dirmngr.confको देखकर और देखने के लिए जाँच करके की जा सकती है कि honor-http-proxyटिप्पणी नहीं की गई है।


3

इस चार कदम दृष्टिकोण ने मेरे लिए एक कॉर्पोरेट प्रॉक्सी के पीछे एक Ubuntu 17.04 VM पर काम किया।

  1. sudo apt-add-repository ppa:brightbox/ruby-ng और इसे विफल होने दो
  2. sudo apt update और जैसे त्रुटि संदेश की तलाश करें The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F5DA5F09C3173AA6
  3. sudo apt-key adv --keyserver-options http-proxy=http://10.0.2.2:3128 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F5DA5F09C3173AA6
  4. sudo apt update अब काम करेंगे

ध्यान दें कि होस्ट VM CNTLMपोर्ट 3128 पर एक प्रॉक्सी सर्वर चला रहा है ।


1
आपको यह बताने के लिए इंतजार करने की जरूरत नहीं है कि कुंजी क्या है। यह पीपीए के तकनीकी विवरण में है : "फ़िंगरप्रिंट: 80F70E11F0F0D5F10CB20E62F5DA5F09C3173AA6"
muru

यह सच है, लेकिन मुझे यह प्रक्रिया थोड़ी आसान लगी।
thegreendroid

1

इससे मुझे मदद मिली:

sudo https_proxy='https://user:password@proxyhost:port/' \
http_proxy='http://user:password@proxyhost:port/' \
ftp_proxy='ftp://user:password@proxyhost:port/' \
no_proxy=localhost,127.0.0.0/8,10.0.0.0/8 add-apt-repository ppa:webupd8team/java

मुझे लगता है कि कुछ पर्यावरण चर हैं जिनकी कमांड में जरूरत नहीं है लेकिन वे नुकसान नहीं पहुंचाते हैं।


1

PPA को मैन्युअल रूप से अपने में जोड़ें /etc/apt/sources.list:

deb http://ppa.launchpad.net/<user>/<repo>/ubuntu trusty main

फ़ाइल सहेजें और चलाएं sudo apt-get update। यह त्रुटि पॉप अप हो सकती है:

W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5BB92C09DB82666C

PPA के लिए कुंजी को स्वीकार करने के लिए निम्नलिखित कमांड को चलाएं, इसी PPA के लिए कुंजी (5BB92C09DB82666C) को बदलना याद रखें।

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 5BB92C09DB82666C

भागो sudo apt-get updateऔर तुम हो गए।

रेफरी: डेबियन वाया add-apt-repositoryकमांड में लॉन्चपैड पीपीए कैसे जोड़ें


1

वास्तव में, मैं उन्हीं समस्याओं में भागता हूं, यही कारण है कि मुझे यह पृष्ठ मिला।

  • वातावरण चर http_proxy (मामला संवेदनशील) और https_proxy (जो भी मामला) कुछ करते हैं। उन्हें स्थापित करना पहले चरण में विफल नहीं होता है, पर्यावरण चर की स्थापना से कुछ प्रभाव पड़ता है; यदि आप उन्हें निर्यात नहीं करते हैं तो यह विफल हो जाएगा

    TCRKVMW ~ $ sudo su -
    TCRKVMW ~ # export http_proxy=http://10.54.0.4:8080/
    TCRKVMW ~ # export https_proxy=http://10.54.0.4:8080/
    TCRKVMW ~ # add-apt-repository ppa:webupd8team/java
    You are about to add the following PPA:
     Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.
    

    (शेष सफल है - इस बार)

बात यह है कि कभी-कभी, यह बस अटक जाता है और सामान्य टाइमआउट संदेश के साथ समाप्त होता है: PPA नहीं जोड़ सकता: '' https://launchpad.net/api/1.0/~webupd8team/+archive/java : (7, ' पढ़ने में त्रुटि ) लॉन्चपैड से कनेक्ट करने में विफल। पोर्ट 443: कनेक्शन टाइम आउट ') ""।

... लेकिन मैं धोखा दे रहा हूं, मैं यह सब जड़ के रूप में कर रहा हूं। एक आसान समाधान उबंटू / टकसाल पर / etc / प्रोफाइल को संपादित करने या करने का है, बस /etc/profile/.d में एक स्क्रिप्ट जोड़ें:

    TCRKVMW ~ $ sudo su -c 'F=/etc/profile.d/proxy.sh S="export proxy_http=\"http://192.168.99.4\"\nexport proxy_https=\"http://192.168.99.4\"" ; echo -e ${S} > ${F} ; chmod 700 ${F}'

ओह, हाँ, वहाँ भी कर्ल के बारे में बात है (जो कि उपयुक्त ऐड-रिपॉजिटरी द्वारा उपयोग किया जाता है)। मैनुअल अपने घर निर्देशिका में .curlrc जोड़ने के लिए कहता है। क्योंकि apt-add-directory रूट का अपना है, इसका मतलब है कि इसे /root/.curlrc में जोड़ना है:

    proxy_http="http://192.168.99.4"
    proxy_https="http://192.168.99.4"

एक अच्छा विचार अपने स्वयं के ~ / .curlrc में ही करना है

इसके अलावा, प्रॉक्सी को / etc / wgetrc में सक्षम करना एक अच्छी बात है, हालांकि इसका पूछे गए सवाल से कोई लेना-देना नहीं है, मैं सिर्फ Google पर आपको एक और खोज सहेज रहा हूं (यदि आप इसे पढ़ते हैं, तो आपके पास एक प्रॉक्सी के साथ कई हैं ) ...


1

में /etc/apt/apt.conf.d/01proxyइस तरह ऐड कुछ

Acquire::http { Proxy "http://192.168.0.99:3142"; };

यह सभी एप्टिट्यूड डाउनलोड को प्रॉक्सी करेगा , लेकिन मुझे लगता है कि बैकएंड पर ऐसा करने का यह एकमात्र तरीका है। यदि आपका प्रॉक्सी इसका समर्थन करता है, तो आप एक url का उपयोग भी कर सकते हैं जैसे http://my.proxy:port/www.target.site.com/urlकि मुझे पता है कि इसके लिए काम करता हैapt-cache-ng

मुझे यकीन है कि अगर ऐड-apt-भंडार itsself इन सेटिंग्स का उपयोग करता है नहीं कर रहा हूँ, लेकिन अगर आपको लगता है कि काम नहीं कर सकते हैं, तो आप हमेशा के लिए डेटा संग्रह स्थान जुड़ सकते हैं अपने /etc/apt/sources.listया/etc/apt/sources.list.d/*mytoolchain*

11.10 के बाद से मुख्य रेपो में एक क्रॉस-टूलचिल भी है, बस apt-get install gcc-arm-linux-gnueabihf। ईमेडियन से क्रॉस-टूलचाइन्स भी उपलब्ध हैं, और कुछ निर्देश यहां दिए गए हैं: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/


user72421: आपको कैसे पता चला कि प्रॉक्सी को 01 के साथ उपसर्ग करना चाहिए और किसी अन्य संख्या के साथ नहीं?
jgomo3

Apt-get & keyserver के साथ काम नहीं करता है
Vik

1

मैं क्या कर रहा हूँ http का उपयोग कर्ल के माध्यम से करने की बजाय apt-key या gpg को प्रॉक्सी करने की कोशिश कर रहा हूँ:

curl -sSL \ ' http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886 \ " | sudo apt-key add -

इस विधि के बजाय प्रयोग किया जाना चाहिए apt-keyकमांड लाइन या http_proxyया https_proxyवातावरण चर सेटिंग्स (जो उपयुक्त कुंजी के नवीनतम संस्करण में अक्षम हैं)।


0

टर्मिनल में निम्न कमांड निष्पादित करें

export http_proxy=http://username:password@proxyserver.net:port/
export ftp_proxy=http://username:password@proxyserver.netport/

0

सिस्टम वाइड पर्यावरण चर को वास्तव में /etc/environment(उपयोग sudoया gksu) में जोड़ा जाना चाहिए , लेकिन आपके द्वारा रिपोर्ट की गई त्रुटि बताती है कि कोई gpg डेटा नहीं मिला। विचार:

  • प्रॉक्सी सेटिंग्स जांचें (यदि आपकी पहुंच है)
  • जांचें कि क्या प्रॉक्सी किसी तरह एन्क्रिप्टेड ट्रैफिक के आउटपुट को कम कर रहा है।
  • यह देखने के लिए कि क्या वास्तव में प्रॉक्सी का कनेक्शन बनाया जा रहा है, एक निरंतर नेटस्टैट चलाएं
  • अंतिम उपाय वायरशार्क में tcpdump और निरीक्षण करना होगा
  • http सुरंग का प्रयास करें;)

0

एक और उपाय एक APT proxy.confफ़ाइल को जोड़ना है ,/etc/apt/apt.conf.d/proxy.conf

Acquire::http::Proxy "http://your.proxy.server.here.com:port/";
Acquire::https::Proxy "http://your.proxy.server.here.com:port/";
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.