2008-08-07 15 views
203

Брандмауэр, на котором я работаю, работает на сервере Microsoft ISA в режиме NTLM. Хеш кто-нибудь успел получить свои драгоценности Ruby для установки/обновления с помощью Ruby SSPI gem или другого метода?Как обновить Ruby Gems из-за прокси-сервера (ISA-NTLM)

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

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

Это также работает для «ИГЕМ», в рамках проекта IronRuby

+6

+1 Я застрял на этом в течение дня. Спасибо за вопрос. – Gishu 2009-07-22 08:22:35

+0

Я получил рубиспи, чтобы работать, но нужно много возиться. Если вы хотите использовать его из оболочки Git Bash, вам понадобится псевдоним, добавленный в ваш .bashrc-файл, например: `alias gem = 'ruby -rspa \` который gem \ `` ` – iconoclast 2012-06-08 18:01:23

+1

Если у вас есть прокси-сервер проблемы после выполнения шагов в большинстве этих ответов, попробуйте убедиться, что `sudo` имеет доступ к вашим переменным среды, добавив переключатель` -E`, например `sudo -E doSomething` – 2016-06-28 20:40:26

ответ

197

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

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

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

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

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

+5

Кажется, что «gem» не распознает обратную косую черту в прокси-строке, будь то HTTP_proxy env var или -http-proxy. например из моего окна Ubuntu --http-proxy http: // domain \\ userid @ server: порт дает мне ошибку: «недопустимый аргумент: -http-proxy ...»; К счастью, мой прокси-сервер не требовал, чтобы спецификация домена и драгоценный камень работали без него. – spoulson 2009-04-29 18:57:47

+0

ISA позволяет администратору указать домен по умолчанию для аутентификации. Вы можете попытаться исключить домен и просто использовать свое имя пользователя, как предлагает собеседник. Если ваш администратор ISA указал указанный домен по умолчанию и ваш учетный счет находится в этом домене, это должно сработать для вас (при условии, что на брандмауэре нет правил блокировки) – squillman 2009-06-16 15:07:43

+0

Спасибо, что сработало! Интересно, почему это не сработало, когда я попробовал аргументы командной строки -p и -http-proxy. Кажется, что работает env var. – Gishu 2009-07-22 08:23:11

5

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

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

Прочитайте в группе google, что 'apserver' теперь «Сервер авторизации NTLM»; стыд в том, что поиск первого не перенаправляется на этот последний. – 2010-08-11 11:35:12

+0

Hi Jarin, Я пошел по ссылке, которую вы указали в своем комментарии, и не смог найти эту загрузку. Есть ли способ загрузить его из другого места? – Matrich 2010-08-26 06:49:41

+1

@ Матрич согласно комментарию Даррена. apserver теперь переименован и найден здесь: http://ntlmaps.sourceforge.net/ – atomicules 2011-01-07 09:38:27

46

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

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

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

7

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

Три решения по всему Интернету на данный момент являются: 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.

186

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

  1. Установка/Запуск Fiddler от www.fiddler2.com
  2. Run драгоценного камня:

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

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

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

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

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

112

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

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

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

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

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

4

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

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

2

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

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

, а затем попробовать:

gem install ${gem_name} 
14

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

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

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

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

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

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

  1. Start -> правой кнопкой мыши Компьютер -> Свойства
  2. Выберите «Дополнительные параметры системы»
  3. Нажмите кнопку Дополнительно -> Переменные среды
  4. Создать новую переменную системы под названием «HTTP_PROXY» и установите значение к прокси-серверу
  5. Reboot или выйти из системы и обратно снова

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

http://proxy-server-name 

или более сложным, как другие отмечали

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

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

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

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

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

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

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

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

3

Это работает для меня в коробке 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 прокси.

11

Создайте файл .gemrc (либо в/и т.д./gemrc или ~/.gemrc или, например, с поваром жемчужину в/Opt/повар/встроенный/и т.д./gemrc), содержащий:

http_proxy: http://proxy:3128 

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