Как обновить 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 для решения этой проблемы.
Ответ 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 прокси.
Ответ 15
rubysspi-1.3.1 работал у меня в Windows 7, используя инструкции на этой странице:
http://www.stuartellis.eu/articles/installing-ruby/
Ответ 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