Установка драгоценных камней из-за корпоративного брандмауэра - PullRequest
7 голосов
/ 14 декабря 2009

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

jruby -S gem list -r

Но когда я иду установить камень, я получаю 404:

jruby -S gem install rails

Есть ли хороший обходной путь для решения этой проблемы, кроме поддержки внутреннего гем-хранилища?

Ответы [ 9 ]

9 голосов
/ 26 января 2012

для рубиновых драгоценных камней, поместите это в мой gem.bat, это работает для меня

@"%~dp0ruby.exe" "%~dpn0" %* --http-proxy http://domainname.ccc.com:8080

для драгоценных камней jruby это работает

@"%~dp0jruby.exe" "%~dpn0" %* -p http://domainname.ccc.com:8080

Также установка переменной окружения работает как

set http-proxy=http://domainname.ccc.com:8080

или если вашему прокси-серверу требуется аутентификация

set http-proxy=http://user:password@host:port)

РЕДАКТИРОВАТЬ: для людей, которые имеют очень ограниченный брандмауэр или не имеют доступа в интернет (например, на сервере), вы можете сделать следующее: установить гем (ы) на ПК, который имеет свободный доступ в интернет, после чего вы проверяете папку C: \ Ruby193 \ lib \ ruby ​​\ gems \ 1.9.1 \ кэшируйте и скопируйте все драгоценные камни с датой, последней измененной после того, как вы сделали установку. На целевом ПК вы копируете их в ту же папку или, если потом очищаете в папке bin и начинаете установку там с

c:\ruby193\bin\gem.bat install --local gemname-x.x.x.gem

gemname-x.x.x.gem - имя файла базового камня, который вы хотите установить. Драгоценный камень со всеми его зависимостями должен установить. Это для окон, но другие ОС могут использовать ту же технику, просто адаптируя несколько вещей. Успех

4 голосов
/ 23 декабря 2009
  1. Посмотрите в настройках прокси Internet Explorer, чтобы найти имя вашего прокси-сервера.
  2. Используйте имя вашего прокси-сервера в опции -p команды gem.

    рельсы обновления драгоценного камня -p http://mylocalproxy.mycompany.com

Если это не сработает, вы всегда можете настроить свой собственный прокси-сервер в Интернете.

2 голосов
/ 15 декабря 2009

Вначале все просто: вы находитесь в одном сеансе оболочки, когда вы пробовали и список, и установку? Может быть, вы забыли установить env второй раз?

Попробуйте установить http_proxy вместо HTTP_PROXY.

Убедитесь, что в настройках прокси указан правильный URL-адрес (см. Ниже)

У вас есть несколько вариантов прокси? Откройте IE и введите wpad в адресной строке. Вы можете увидеть некоторые другие возможности.

Аутентифицирован ли ваш прокси? Если это так, у вас есть свои учетные данные в URL. У меня вот так (на окнах):

set http_proxy=http://myuserid:mypassword@internetproxy:3128

Ваш пароль содержит знаки препинания? Попробуйте использовать только цифры и буквы, так как : и @ (и, возможно, другие) значимы в самой строке URL.

2 голосов
/ 14 декабря 2009

Я не эксперт по Ruby. Тем не менее, я мог бы дать следующие «общие» советы (полезно для многих ситуаций с установщиками):

  1. Проверьте, по какому протоколу выполняется установка. Некоторые установщики загружают пакет с зеркала вместо основного сайта, а некоторые зеркала могут использовать FTP или что-то еще вместо HTTP. Таким образом, вам может потребоваться соответствующим образом обновить настройки и проверить у администратора, что корпоративный прокси-сервер может получать данные с FTP-сайтов.

  2. Проверьте, от какого пользователя запущен установщик (некоторые установщики должны повысить привилегии до уровня «root». И, следовательно, наследовать другую среду с другим определенным HTTP_PROXY).

  3. Проверьте, что программа установки использует для загрузки пакетов (многие менеджеры пакетов распространения полагаются на curl / libcurl, который хранит свои параметры прокси в файле rc). То же предупреждение, что и для пользователей 2, каталог homedir которых должен содержать файл rc.

  4. Прозрачное проксирование: можно передавать на лету HTTP / FTP-запросы, изначально предназначенные для Интернета, на прокси. Либо корпоративный прокси-сервер (если он может работать с такой установкой), либо какой-нибудь локальный мини-прокси, который затем будет каскадно подключен к корпоративному.

  5. Установите быструю VPN (либо туннель другой PPP) через SSH (см. Справочную страницу SSH) между вашим компьютером и специальным компьютером в корпорации, которому разрешен доступ в Интернет, затем обновите таблицы маршрутизации для маршрутизации трафика. через VPN.

  6. Вы также можете использовать штопор для подключения через SSH (и, таким образом, иметь возможность установить VPN через SSH, например, 5) с машиной снаружи, на другой стороне корпоративного брандмауэра, например, свой собственный дома. (для доступа к SSH снаружи используется режим HTTPS «CONNECT» прокси-сервера). Просто убедитесь, что администраторы - или, по крайней мере, один ответственный сотрудник - находятся в курсе и не паникуют.

  7. Отчаянная мера: создайте туннель между двумя машинами, на которых работает каждая http туннель , через прокси, который разрешает только HTTP-запросы. Затем используйте туннель для установки SSH VPN.

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

1 до 4 должно работать в большинстве ситуаций. Вам придется прибегнуть к 5-7, если вы столкнетесь с какими-то странными и / или параноидальными брандмауэрами. 7 довольно экстремальный, но всегда работает, хотя иногда с катастрофическими характеристиками.

1 голос
/ 18 декабря 2009

Вы можете использовать этот инструмент: http://ntlmaps.sourceforge.net/

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

0 голосов
/ 29 мая 2014

1.GO к диску, на котором вы установили ruby. 2. Вы найдете папку с именем «ruby200-x64» или что-то похожее, в зависимости от того, какую версию вы установили. 3. Внутри папки откройте ... bin / 4. найдите gem.bat, откройте его в любом текстовом редакторе, вы найдете множество настроек. 5. после @ "% ~ dp0ruby.exe" "% ~ dpn0"% * укажите адрес и порт прокси-сервера. **

@ "% ~ dp0ruby.exe" "% ~ dpn0"% * --http-proxy http://domainname.ccc.com:8080

**

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

Я описал процедуру, чтобы обойти любые ограничения корпоративного брандмауэра в:

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

В основном он использует туннель ssh и программу tsocks.

0 голосов
/ 11 января 2010

Я перепроверил это с тех пор, как пользователи gemcutter.org перешли в режим Amazon Cloudfront и могут снова загружать драгоценные камни через брандмауэр моего работодателя.

0 голосов
/ 15 декабря 2009

Еще один глупый вопрос, но что такое корпоративный прокси-сервер? Некоторые программы на базе Windows, как правило, используют странные стандарты аутентификации (хеш-коды NTLM и т. Д.), Которые поддерживаются не всеми клиентами (например, wget не поддерживает его), но поддерживаются многими браузерами.

Таким образом, даже если вы попытались записать имя пользователя и пароль в URL-адрес прокси-сервера, он не будет работать при загрузке и установке пакетов, хотя он работает довольно хорошо при попытке отобразить страницу в FireFox. У меня были похожие проблемы с корпоративной сетью и менеджером пакетов моего дистрибутива.

В этой ситуации вы можете использовать что-то вроде ntlmaps . Вы используете его в качестве локального прокси, который затем будет каскадно обращаться к корпоративному прокси. Хорошо, что ntlmaps сможет аутентифицировать странный пароль NTLM с корпоративным прокси, и все ваши приложения смогут подключаться к ntlmaps, даже те, которые не поддерживают NTLM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...