Как обновить Ruby Gems из-за прокси (ISA-NTLM)

В моем брандмауэре работает сервер Microsoft ISA в режиме NTLM. Хэшу кто-нибудь добился успеха в получении своих камней Ruby для установки/обновления с помощью Ruby SSPI gem или другого метода?

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

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

Это также работает для "igem", входящего в проект IronRuby

Ответ 1

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

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

Я установил четыре ссылочных переменных, прежде чем я получу эту строку, очевидно. В качестве примера, если мое имя пользователя "wolfbyte", мой пароль "секретный", а мой прокси называется "pigsy" и работает на порту 8080:

SET HTTP_PROXY=http://wolfbyte:[email protected]:8080

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

Ответ 2

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

  • Установить/запустить Fiddler с сайта www.fiddler2.com
  • Запустить камень:

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

Ответ 3

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

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

Ответ 4

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

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

Подробнее http://cntlm.wiki.sourceforge.net/

Ответ 5

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

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

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

Ответ 6

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

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

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

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

Ответ 7

Создайте файл .gemrc(либо в /etc/gemrc или ~/.gemrc, либо, например, с помощью шеф-повара в /opt/chef/embedded/etc/gemrc ), содержащий:

http_proxy: http://proxy:3128

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

Ответ 8

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

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

Синтаксис user:[email protected], похоже, не работает, и есть также некоторые сильно названные переменные среды, плавающие вокруг в Qaru и различные сообщения на форуме.

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

Ответ 9

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

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

tsocks gem install ...

или для учета rails 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 на окнах называется putty.

Ответ 10

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

В настоящее время три решения в Интернете: 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.

Ответ 11

Обходной путь заключается в установке http://apserver.sourceforge.net на вашем локальном компьютере, настройке и запуске камней через этот прокси.

  • Установить: просто скачайте apserver 097 (а не экспериментальный 098!) и распакуйте.
  • Настроить: отредактируйте файл server.cfg и поместите значения для своего MS-прокси в PARENT_PROXY и PARENT_PROXY_PORT. Введите значения для DOMAIN и USER. Оставьте PASSWORD пустым (ничего после двоеточия) - вам будет предложено при запуске.
  • Запустить apserver: cd aps097; python main.py
  • Run Gems: gem install—http-proxy http://localhost:5865/ library

Ответ 12

Я работаю за прокси и просто установил SASS, загрузив непосредственно из http://rubygems.org.

Затем я побежал sudo gem install [path/to/downloaded/gem/file]. Я не могу сказать, что это будет работать для всех драгоценных камней, но это может помочь некоторым людям.

Ответ 13

Если вы находитесь в системе * nix, используйте это:

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

а затем попробуйте:

gem install ${gem_name}

Ответ 14

Это работало для меня в окне Windows:

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 прокси.

Ответ 16

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

В Windows, за моим корпоративным прокси-сервером, все, что мне нужно было сделать, это добавить переменную среды HTTP_PROXY в мою систему.

  • Пуск → щелкните правой кнопкой мыши Компьютер → Свойства
  • Выберите "Расширенные настройки системы"
  • Нажмите "Дополнительно" → "Переменные среды"
  • Создайте новую Системную переменную с именем "HTTP_PROXY" и установите значение на ваш прокси-сервер
  • Перезагрузитесь или выйдите из системы и зайдите снова.

В зависимости от ваших требований проверки подлинности значение HTTP_PROXY может быть таким же простым, как:

http://proxy-server-name

Или сложнее, чем другие указали

http://username:[email protected]:port-number

Ответ 17

Если вы хотите использовать прокси SOCKS5, вы можете попробовать rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy.

Он работает для меня на OSX 10.9.3.

Ответ 18

Если за прокси-сервером вы можете перейти к "Загрузка Ruby" , нажмите "Загрузить", который загрузит указанное обновление (или Gem) на желаемое местоположение.

Затем, в командной строке Ruby, перейдите к загруженному местоположению, используя: pushd [directory]

например: pushd D:\Setups

затем выполните следующую команду: gem install [update name] --local

например: gem install rubygems-update --local.

Протестировано в Windows 7 с обновлением версии 2.4.1 Ruby.

Чтобы проверить использование следующей команды: ruby -v

Ответ 19

Быстрый ответ: добавьте конфигурацию прокси с параметром для установки/обновления

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

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