मैं एक प्रॉक्सी (ISA-NTLM) के पीछे से रूबी रत्न को कैसे अपडेट करूं


232

फ़ायरवॉल मैं पीछे हूँ NTLM- केवल मोड में Microsoft ISA सर्वर चला रहा हूँ। हैश किसी को भी रूबी SSPI रत्न या अन्य विधि के माध्यम से स्थापित / अद्यतन करने के लिए अपने रूबी रत्न प्राप्त करने में सफलता मिली है?

... या मैं सिर्फ आलसी हो रहा हूं?

नोट: रुबीस्पि-1.2.4 काम नहीं करता है।

यह "igem" के लिए भी काम करता है, IronRuby परियोजना का हिस्सा है


मुझे काम करने के लिए रूबिसपी मिल गया है, लेकिन बहुत कुछ जरूरी है। यदि आप इसे Git Bash शेल से उपयोग करना चाहते हैं, तो आपको अपनी .bashrc फ़ाइल में इस तरह से एक उपनाम जोड़ने की आवश्यकता होगी:alias gem='ruby -rspa `which gem`'
iconoclast

1
यदि आपके पास इन उत्तरों में से अधिकांश में करने के बाद प्रॉक्सी के मुद्दे हैं, तो सुनिश्चित करें sudoकि -Eस्विच, जैसे,sudo -E doSomething
kayleeFrye_onDeck

जवाबों:


214

मैं कमांड-लाइन स्विच से काम नहीं कर पा रहा था, लेकिन मैं अपने HTTP_PROXYपर्यावरण चर को स्थापित करके ऐसा कर पाया । (ध्यान दें कि मामला महत्वपूर्ण प्रतीत होता है)। मेरे पास एक बैच फ़ाइल है जिसमें इस तरह की एक पंक्ति है:

SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%

मैं स्पष्ट रूप से इस लाइन पर पहुंचने से पहले चार संदर्भित चर सेट करता हूं। एक उदाहरण के रूप में यदि मेरा उपयोगकर्ता नाम "wolfbyte" है, तो मेरा पासवर्ड "गुप्त" है और मेरे प्रॉक्सी को "पिगी" कहा जाता है और यह 8080 पोर्ट पर संचालित होता है:

SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080

आप सावधान रहना चाहते हैं कि आप इसे कैसे प्रबंधित करते हैं क्योंकि यह मशीन के सत्र में सादे पाठ में आपके पासवर्ड को संग्रहीत करता है, लेकिन मुझे नहीं लगता कि यह एक मुद्दे का बहुत अधिक होना चाहिए।


6
ऐसा लगता है कि 'मणि' प्रॉक्सी स्ट्रिंग में बैकस्लैश को पहचानने में विफल है, चाहे http_proxy env var या --http- प्रॉक्सी तर्क से। उदाहरण के लिए मेरे उबंटू बॉक्स से-http- प्रॉक्सी http: // domain \\ userid @ सर्वर: पोर्ट मुझे त्रुटि देता है: "अमान्य तर्क: --http- प्रॉक्सी ..."; सौभाग्य से, मेरे प्रॉक्सी सर्वर को डोमेन विनिर्देशन की आवश्यकता नहीं थी और मणि ने इसके बिना काम किया।
स्पूल्सन

ISA, व्यवस्थापक को इसके विरुद्ध प्रमाणित करने के लिए एक डिफ़ॉल्ट डोमेन निर्दिष्ट करने देता है। आप डोमेन छोड़ने की कोशिश कर सकते हैं और अपने उपयोगकर्ता नाम का उपयोग कर सकते हैं जैसे कि स्पूलसन सुझाव। यदि आपके ISA व्यवस्थापक ने डिफ़ॉल्ट डोमेन को निर्दिष्ट किया है और आपका useraccount उस डोमेन में है, तो यह आपके लिए काम करना चाहिए (यह मानते हुए कि फ़ायरवॉल पर कोई अवरुद्ध नियम नहीं हैं)
स्क्विल्मन

11
@spoulson यदि आपको डोमेन की आवश्यकता है, तो आपको URI के बैकस्लैश को एनकोड करना होगा, जैसे http: // domain% 5Cuserid @ सर्वर: port।
इयान जी

13
FYI करें, विंडोज में, आप सेट http_proxy लाइन को gem.bat में जोड़ सकते हैं ताकि आपको हर बार प्रॉक्सी सेट करने के लिए याद न रखें।
एड मैनेट

1
वैसे, यदि आपके पासवर्ड में विशेष प्रतीक हैं, तो आपको उन्हें urlencode करना चाहिए। जैसे आदि के @साथ प्रतिस्थापित%40
एंड्री रीजेंटोव

221

विंडोज ओएस के लिए, मैंने इस मुद्दे के आसपास काम करने के लिए फिडलर का उपयोग किया।

  1. Www.fiddler2.com से Fiddler स्थापित / चलाएँ
  2. रत्न चलाएं:

    $ gem install --http-proxy http://localhost:8888 $gem_name

3
एक इलाज का काम किया, ntlmaps और cntlm की तुलना में बहुत आसान है।
एटॉमिक्यूल

36
इसने मेरे लिए काम किया। ध्यान दें कि सभी स्थितियों में फ़िडलर की आवश्यकता नहीं है। बस gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_nameमेरे लिए वो सब जरूरी था।
पोलारिस878

विंडोज 7 पर, --http- प्रॉक्सी फ्लैग को मणि नाम के बाद जाना चाहिए, जैसे कि मणि स्थापित करें <gemaname> --http -xy yourproxy.address; पोर्ट । अन्यथा, यह एक अमान्य कमांड-लाइन स्विच के बारे में शिकायत करेगा।
डेविस में

विंडोज 10 पर काम करता है
21

यह वह है जो मेरे लिए एक कॉर्पोरेट प्रॉक्सी के पीछे काम करता है। किसी फिडलर की जरूरत नहीं। उदाहरण के लिए जेकिल रत्न को बस चलाने के लिए: sudo gem install jekyll --http-proxy=http://web-proxy.company.com:8080
जोसफ

129

यह पूरी तरह से काम किया:

gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name

15
यह उत्तर की तारीख तक सबसे अधिक है, यह खिड़कियों के साथ भी काम करता है। हालांकि मुझे अपना उपयोगकर्ता नाम और पासवर्ड जोड़ना था: मणि स्थापित --http- प्रॉक्सी http: // [ उपयोगकर्ता ]: [ पासवर्ड ] @ [ सर्वर ]: [ पोर्ट ]
vanderwyst

मैं जेकिल स्थापित नहीं कर सका और प्राप्त करता रहा SSL_connect SYSCALL returned=5 errno=0 state=unknown state (https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/jekyll-3.0.0.gemspec.rz)। इसने मेरे साथ काम कियाgem install --http-proxy http://127.0.0.1:8580 jekyll
माजिद फूलादपुर

मैंने अपने बैश प्रोफ़ाइल में एक उपनाम जोड़ा: alias geminstall='gem install --http-proxy ${http_proxy}'अपने जीवन को आसान बनाने के लिए।
bgStack15

48

मैं काम पर cntlm ( http://cntlm.sourceforge.net/ ) का उपयोग कर रहा हूं । कॉन्फ़िगरेशन ntlmaps के समान है।

महान काम करता है, और मुझे अपने Ubuntu बॉक्स को ISA प्रॉक्सी से जोड़ने की अनुमति भी देता है।

की जाँच करें http://cntlm.wiki.sourceforge.net/ अधिक जानकारी के लिए


2
यह सभी की कोशिश की कम से कम दर्दनाक तरीका है। उबंटू / डेबियन पर, मैं apt-get install cntlm करता हूं, कॉन्फिग को एडिट करता हूं और फिर http_proxy = " localhost: 3128 " को एक्सपोर्ट करता हूं । काम करता है!
कोनड्स

पूरी तरह से खिड़कियों पर भी काम करता है। धन्यवाद!
सुब्रत पटनायक

38

मैंने इनमें से कुछ समाधानों की कोशिश की, और उनमें से कोई भी काम नहीं किया। मुझे आखिरकार एक समाधान मिला जो मेरे लिए काम करता है:

gem install -p http://proxy_ip:proxy_port rails

-pप्रॉक्सी को पास करने के लिए पैरामीटर का उपयोग करना । मैं मणि संस्करण 1.9.1 का उपयोग कर रहा हूं।



मुझे यह जोड़ना पड़ा proxy_ipकि httpsकाम करने के लिए कनेक्शन के लिए इसका उपयोग किया जाता है ! महान: D (मणि संस्करण 2.0.14)
madlymad

18

एक .gemrc फ़ाइल (या तो / etc / gemrc या ~ / .gemrc में या उदाहरण के लिए शेफ रत्न के साथ / opt / chef / एम्बेडेड / etc / gemrc) युक्त बनाएँ:

http_proxy: http://proxy:3128

फिर आप gem installहमेशा की तरह हो सकते हैं ।


मामले में यह उपयोग कर काम कर रहा है, --http-proxyलेकिन .gemrcफ़ाइल के साथ नहीं , यह sudoकॉन्फ़िगरेशन से आ सकता है। मुझे /etc/sudoersजोड़ने के लिए फ़ाइल की जाँच करनी थी : Defaults env_keep = "http_proxy ftp_proxy"इससे पहले:Defaults env_reset
निर्भरता

16

इससे मेरी समस्या पूरी तरह हल हो गई:

gem install -p http://proxy_ip:proxy_port compass

आपको अपना उपयोगकर्ता नाम और पासवर्ड इसमें जोड़ना होगा:

gem install -p http://[username]:[password]@proxy_ip:proxy_port compass

11

यदि आपको अपने प्रॉक्सी के माध्यम से प्रमाणिकता प्राप्त करने में समस्या आ रही है, तो नीचे दिए गए प्रारूप में पर्यावरण चर निर्धारित करना सुनिश्चित करें:

set HTTP_PROXY=some.proxy.com
set HTTP_PROXY_USER=user
set HTTP_PROXY_PASS=password

user:password@वाक्य रचना काम प्रतीत नहीं होता है और वहाँ भी कुछ बुरी तरह से नामित पर्यावरण स्टैक ओवरफ़्लो और विभिन्न मंच पदों पर चारों ओर चल चर हैं।

यह भी ध्यान रखें कि आपके रत्नों को डाउनलोड शुरू करने में कुछ समय लग सकता है। पहले तो मुझे लगा कि यह काम नहीं कर रहा है, लेकिन थोड़े धैर्य के साथ उन्होंने उम्मीद के मुताबिक डाउनलोड करना शुरू कर दिया।


बेंजामिन वुट्टन की टिप लेते हुए कॉर्पोरेट विंडोज से जुड़े मेरे विंडोज 7 लैपटॉप पर बहुत अच्छा काम किया। डॉस प्रॉम्प्ट पर कमांड लाइन विंडो में मैंने HTTP_PROXY को http: // localhost: 8888 (स्पेस को अनदेखा करें) और फिर क्रमशः HTTP_PROXY_USER और HTTP_PROXY -PASS के लिए अपने LAN उपयोगकर्ता नाम और पासवर्ड का उपयोग किया।
किरण

8

मैंने उपरोक्त सभी समाधानों की कोशिश की, हालांकि उनमें से किसी ने भी काम नहीं किया। यदि आप linux / macOS पर हैं, तो मैं अत्यधिक ssh सुरंग पर tsocks का उपयोग करने का सुझाव देता हूं। इस सेटअप को काम करने के लिए आपको जो कुछ चाहिए वह एक मशीन है जिसमें आप ssh के माध्यम से लॉग इन कर सकते हैं, और इसके अलावा एक प्रोग्राम जिसे tsocks इंस्टॉल किया गया है।

यहाँ विचार SSH (एक मोजे 5 प्रॉक्सी) के माध्यम से एक गतिशील सुरंग बनाने के लिए है। हम तब इस सुरंग का उपयोग करने और इस मामले में, हमारे आवेदन शुरू करने के लिए टस्क को कॉन्फ़िगर करते हैं:

tsocks gem install ...

या रेल 3.0 के लिए खाते में:

tsocks bundle install

एक अधिक विस्तृत गाइड के तहत पाया जा सकता है:

http://blog.byscripts.info/2011/04/bypass-a-proxy-with-ssh-tunnel-and-tsocks-under-ubuntu/

उबंटू के लिए लिखे जाने के बावजूद यह प्रक्रिया सभी यूनिक्स आधारित मशीनों के लिए लागू होनी चाहिए। विंडोज के लिए tsocks का एक विकल्प FreeCap ( http://www.freecap.ru/eng/ ) है। विंडोज़ पर एक व्यवहार्य SSH क्लाइंट को पोटीन कहा जाता है।


मैंने अपने बैकअप में लेख पाया और बस उसी URL के साथ इसे पुनः प्रकाशित किया।
१५

1
URL अभी भी उपलब्ध नहीं है। ऑफ-साइट, नॉन-स्टैक एक्सचेंज साइट के लिए लिंक प्रदान करते समय, यहाँ के मुख्य भागों को संक्षेप में प्रस्तुत करें और उस साइट को क्रेडिट दें। इस तरह, जब लिंक टूट जाता है, तो महत्वपूर्ण हिस्सा अभी भी यहां है।
टीन मैन

7

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

इस समय इंटरनेट पर तीन समाधान हैं: रुबिस्पेई एब्सर्वर कैंटलम

रुबाईस्पी केवल विंडोज मशीन, एएफएआईके से काम करती है, क्योंकि यह विन 32 एपीआई लाइब्रेरी पर निर्भर करती है। इसलिए यदि आप एक प्रॉक्सी के माध्यम से चलने की कोशिश कर रहे विंडोज बॉक्स पर हैं, तो यह आपके लिए समाधान है। यदि आप लिनक्स डिस्ट्रो पर हैं, तो आप भाग्य से बाहर हैं।

माफी एक मृत परियोजना लगती है। मैंने जिन पोस्टों में लिस्ट देखी है, वे सोर्सफोर्ज पर 404 पेज की हैं। मैं sourceforge रिटर्न पर कुछ भी नहीं "माफी" के लिए खोज।

Cntlm के लिए सोर्सफोर्ज़ लिंक जिसे मैंने http://cntlm.awk.cz/ पर रीडायरेक्ट किया है , लेकिन कई बार बाहर। Sourceforge पर एक खोज इस लिंक को बदल देती है, जो काम करता है: http://sourceforge.net/projects/cntlm/

Cntlm को डाउनलोड करने और कॉन्फ़िगर करने के बाद मैं प्रॉक्सी के माध्यम से एक रत्न स्थापित करने में कामयाब रहा हूं, इसलिए यह लिनक्स डिस्ट्रोस के लिए सबसे अच्छा समाधान प्रतीत होता है।


6

त्वरित उत्तर: इंस्टॉल / अपडेट दोनों के लिए पैरामीटर के साथ प्रॉक्सी कॉन्फ़िगरेशन जोड़ें

gem install --http-proxy http://host:port/ package_name

gem update --http-proxy http://host:port/ package_name

5
मौजूदा उत्तरों के साथ एक पुराने प्रश्न का उत्तर जोड़ते समय यह बताना उपयोगी होता है कि आपका उत्तर क्या नया है।
जेसन एलेर

सभी विवरण (त्वरित उत्तर) पढ़े बिना विस्तार से सीधे कमांड निर्दिष्ट करने के लिए
शैटन

और, पर्यावरण चर सेट करना हर किसी के लिए एक विकल्प नहीं है (जब आप केवल एक बार अपडेट करते हैं)
शांतनु

कृपया सभी स्पष्टीकरण उत्तर में ही दें, टिप्पणी अनुभाग पर नहीं
निको हसे

5

एक वर्कअराउंड अपने स्थानीय मशीन पर http://web.archive.org/web/20060913093359/http://apserver.sourceforge.net:80/ स्थापित करना है , इसे कॉन्फ़िगर करें और इस प्रॉक्सी के माध्यम से रत्न चलाएं।

  • इंस्टॉल करें: बस एप्सेवर 097 डाउनलोड करें (और प्रयोगात्मक 098!) और अनपैक न करें।
  • कॉन्फ़िगर: संपादित करें server.cfg फ़ाइल और में अपने एमएस प्रॉक्सी के लिए मान रखा PARENT_PROXYऔर PARENT_PROXY_PORT। DOMAIN और USER के लिए मान दर्ज करें। PASSWORD को खाली छोड़ दें (बृहदान्त्र के बाद कुछ भी नहीं) - इसे लॉन्च करते समय आपको संकेत दिया जाएगा।
  • क्षमा करें: cd aps097; python main.py
  • रत्न चलाएं: gem install—http-proxy http://localhost:5865/ library

5
एक Google समूह में पढ़ें कि 'क्षमा करने वाला' अब 'NTLM प्राधिकरण सर्वर' है; शर्म की बात है कि पूर्व की खोज उस बाद को पुनर्निर्देशित नहीं करती है।
डैरेन बिशप

हाय जरीन, मैं आपकी टिप्पणी में आपके द्वारा दिए गए लिंक पर गया और वह डाउनलोड नहीं मिला। क्या कोई तरीका है कि मैं इसे कहीं और से डाउनलोड कर सकूं?
Matrich

1
@ डैरेन, डैरेन की टिप्पणी के अनुसार। apserver अब नाम बदलकर और यहाँ पाया जाता है: ntlmaps.sourceforge.net
atomicules

4

मैं एक प्रॉक्सी के पीछे काम कर रहा हूं और बस http://rubygems.org से सीधे डाउनलोड करके SASS स्थापित कर रहा हूं ।

मैं फिर भागा sudo gem install [path/to/downloaded/gem/file]। मैं यह नहीं कह सकता कि यह सभी रत्नों के लिए काम करेगा, लेकिन यह कुछ लोगों की मदद कर सकता है।


3

यह मेरे लिए एक विंडोज बॉक्स में काम करता है:

set HTTP_PROXY=http://server:port
set HTTP_PROXY_USER=username
set HTTP_PROXY_PASS=userparssword
set HTTPS_PROXY=http://server:port
set HTTPS_PROXY_USER=username
set HTTPS_PROXY_PASS=userpassword

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

चाल, मेरे मामले में, HTTPS_PROXYसेट थी। उनके बिना, मुझे हमेशा 407 प्रॉक्सी प्रमाणीकरण त्रुटि मिली।


3

यदि आप एक * निक्स सिस्टम पर हैं, तो इसका उपयोग करें:

export http_proxy=http://${proxy.host}:${port}
export https_proxy=http://${proxy.host}:${port}

और फिर कोशिश करें:

gem install ${gem_name}



1

यदि एक प्रॉक्सी के पीछे, आप रूबी डाउनलोड पर नेविगेट कर सकते हैं, तो डाउनलोड पर क्लिक करें, जो वांछित स्थान पर निर्दिष्ट अपडेट (या जेम) डाउनलोड करेगा।

अगला, रूबी कमांड लाइन के माध्यम से, उपयोग करके डाउनलोड किए गए स्थान पर नेविगेट करें: pushd [directory]

जैसे: pushd D:\Setups

फिर निम्न कमांड चलाएँ: gem install [update name] --local

उदाहरण के लिए: gem install rubygems-update --local

रूबी अपडेट संस्करण 2.4.1 के साथ विंडोज 7 पर परीक्षण किया गया।

निम्नलिखित कमांड का उपयोग करने की जांच करने के लिए: ruby -v


1

बैच फ़ाइलों को संपादित करने के बजाय (जो आपको अन्य रूबी रत्न, उदाहरण के लिए बंडलर के लिए करना पड़ सकता है), यह शायद एक बार ऐसा करना बेहतर है, और इसे ठीक से करें।

विंडोज पर, मेरे कॉर्पोरेट प्रॉक्सी के पीछे, मुझे बस इतना करना था कि HTTP_PROXYमेरे सिस्टम में पर्यावरण चर को जोड़ा जाए ।

  1. प्रारंभ -> राइट क्लिक कंप्यूटर -> गुण
  2. "उन्नत सिस्टम सेटिंग्स" चुनें
  3. उन्नत -> पर्यावरण चर पर क्लिक करें
  4. एक नया सिस्टम वैरिएबल बनाएं जिसका नाम "HTTP_PROXY " , और अपने प्रॉक्सी सर्वर के लिए मान सेट करें
  5. रिबूट या लॉग आउट और फिर से वापस

आपकी प्रमाणीकरण आवश्यकताओं के आधार पर, HTTP_PROXYमान उतना ही सरल हो सकता है:

http://proxy-server-name

या अधिक जटिल के रूप में दूसरों ने बताया है

http://username:password@proxy-server-name:port-number

0

SSH के साथ सुरंग बनाने वाले किसी के लिए; आप gemSOCKS प्रॉक्सी का उपयोग करने वाले कमांड का एक संस्करण बना सकते हैं :

  1. के socksifyसाथ स्थापित करें gem install socksify(आपको प्रॉक्सी के बिना इस चरण को करने में सक्षम होने की आवश्यकता होगी, कम से कम)
  2. अपने मौजूदा रत्न को कॉपी करें

    cp $(command which gem) /usr/local/bin/proxy_gem
  3. इसे अपने पसंदीदा संपादक में खोलें और इसे शीर्ष पर जोड़ें (शेबंग के बाद)

    require 'socksify'
    
    if ENV['SOCKS_PROXY']
      require 'socksify'
      host, port = ENV['SOCKS_PROXY'].split(':')
      TCPSocket.socks_server = host || 'localhost'
      TCPSocket.socks_port = port.to_i || 1080
    end
  4. अपनी सुरंग स्थापित करें

    ssh -D 8123 -f -C -q -N user@proxy
  5. अपने रत्न आदेश को प्रॉक्सी_गैम के साथ चलाएँ

    SOCKS_PROXY=localhost:8123 proxy_gem push mygem
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.