Как обновить Ruby Gems из-за прокси (ISA-NTLM) - PullRequest
220 голосов
/ 07 августа 2008

Брандмауэр, за которым я работаю, работает на сервере Microsoft ISA в режиме только NTLM. У кого-нибудь есть успехи в получении / установке своих гемов Ruby для установки / обновления через гем Ruby SSPI или другим способом?

... или я просто ленивый?

Примечание: rubysspi-1.2.4 не работает.

Это также работает для "igem", части проекта IronRuby

Ответы [ 18 ]

208 голосов
/ 07 августа 2008

Я не смог заставить мой работать с помощью переключателя командной строки, но я смог сделать это, просто установив переменную окружения HTTP_PROXY. (Обратите внимание, что дело кажется важным). У меня есть командный файл с такой строкой:

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

Я установил четыре переменные, на которые ссылаются, прежде чем я, очевидно, доберусь до этой строки. Например, если мое имя пользователя «wolfbyte», мой пароль «secret», а мой прокси-сервер называется «pigsy» и работает через порт 8080:

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

Возможно, вы захотите быть осторожным, как вы управляете этим, потому что он сохраняет ваш пароль в виде простого текста в сеансе машины, но я не думаю, что это должно быть слишком большой проблемой.

206 голосов
/ 15 ноября 2010

Для ОС Windows я использовал Fiddler, чтобы обойти эту проблему.

  1. Установить / запустить Fiddler с www.fiddler2.com
  2. Выполнить самоцвет:

    $ gem install --http-proxy http://localhost:8888 $gem_name
    
127 голосов
/ 26 марта 2012

Это полностью сработало:

gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name
48 голосов
/ 01 сентября 2008

Я использовал cntlm (http://cntlm.sourceforge.net/) на работе. Конфигурация очень похожа на ntlmaps.

Прекрасно работает, а также позволяет мне подключить мой Ubuntu box к прокси ISA.

Проверьте http://cntlm.wiki.sourceforge.net/ для получения дополнительной информации

38 голосов
/ 02 августа 2012

Я попробовал некоторые из этих решений, и ни одно из них не сработало. Я наконец нашел решение, которое работает для меня:

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

с использованием параметра -p для передачи прокси. Я использую Gem версии 1.9.1.

16 голосов
/ 22 декабря 2015

Создайте файл .gemrc (в / etc / gemrc или ~ / .gemrc или, например, с chef gem в / opt / chef / внедренный / etc / gemrc), содержащий:

http_proxy: http://proxy:3128

Тогда вы можете gem install как обычно.

16 голосов
/ 09 апреля 2014

Это решило мою проблему отлично:

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

Возможно, вам потребуется добавить имя пользователя и пароль:

gem install -p http://[username]:[password]@proxy_ip:proxy_port compass
10 голосов
/ 21 февраля 2012

Если у вас возникают проблемы с аутентификацией через прокси-сервер, убедитесь, что переменные среды установлены точно в следующем формате:

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

Синтаксис user:password@, похоже, не работает, а также есть некоторые плохо названные переменные среды, плавающие в переполнении стека и в различных сообщениях на форуме.

Также помните, что загрузка ваших драгоценных камней может занять некоторое время. Сначала я подумал, что это не работает, но с небольшим терпением они начали скачивать, как и ожидалось.

8 голосов
/ 06 сентября 2011

Я перепробовал все вышеперечисленные решения, однако ни одно из них не сработало. Если вы используете Linux / MacOS, я настоятельно рекомендую использовать tsocks через ssh-туннель. Для того, чтобы эта настройка работала, вам нужен компьютер, на котором вы можете войти через ssh, и в дополнение к этому установлена ​​программа под названием tsocks.

Идея в том, чтобы создать динамический туннель через SSH (прокси socks5). Затем мы настраиваем tsocks для использования этого туннеля и запуска наших приложений, в данном случае:

tsocks gem install ...

или для учета рельсов 3.0:

tsocks bundle install

Более подробное руководство можно найти по адресу:

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

Несмотря на то, что она написана для Ubuntu, эта процедура должна быть применима для всех машин на основе Unix. Альтернативой tsocks для Windows является FreeCap (http://www.freecap.ru/eng/). Жизнеспособный SSH-клиент для Windows называется putty.

7 голосов
/ 10 марта 2009

Изобилуют сообщения по этой теме, и чтобы помочь другим сэкономить часы, пытаясь найти разные решения, вот окончательный результат моих часов работы.

На данный момент существует три решения в Интернете: rubysspi apserver cntlm

rubysspi работает только с Windows-машины AFAIK, так как использует библиотеку Win32Api. Так что, если вы работаете в Windows, пытаясь запустить прокси-сервер, это решение для вас. Если вы находитесь в дистрибутиве Linux, вам не повезло.

apserver кажется мертвым проектом. Ссылка, указанная в сообщениях, которые я видел, ведет на страницу 404 на sourceforge. Я ищу "apserver" на sourceforge ничего не возвращает.

Ссылка sourceforge для cntlm, которую я видел, перенаправляет на http://cntlm.awk.cz/,, но время ожидания истекло. Поиск по sourceforge обнаруживает эту ссылку, которая работает: http://sourceforge.net/projects/cntlm/

После загрузки и настройки cntlm мне удалось установить гем через прокси, так что это, похоже, лучшее решение для дистрибутивов Linux.

...