При отказе установить рубиновые драгоценные камни, требуемые бродячим плагином, устанавливают бродягу-proxyconf

У меня есть машина Ubuntu 16.04 позади прокси. От этой машины я могу использовать прокси в качестве ожидаемого использования http_proxy и https_proxy переменные среды. Однако, когда новое бродячее поле поднято, его сценарий настройки делает попытку доступов HTTP и сбоев.

Ответ на это, по-видимому, должен установить бродячий-proxyconf плагин согласно этому ТАК вопрос:

vagrant plugin install vagrant-proxyconf

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

$ vagrant plugin install vagrant-proxyconf
Installing the 'vagrant-proxyconf' plugin. This can take a few minutes...
Bundler, the underlying system Vagrant uses to install plugins,
reported an error. The error is shown below. These errors are usually
caused by misconfigured plugin installations or transient network
issues. The error from Bundler is:

Net::HTTPForbidden: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
... <snip - see rendered HTML> ...
</html>


Warning: this Gemfile contains multiple primary sources. Using `source` more than once without a block is a security risk, and may result in installing unexpected gems. To resolve this warning, use a block to indicate which gems should come from the secondary source. To upgrade this warning to an error, run `bundle config disable_multisource true`.
$

Я сохранил вывод HTML от этой ошибки и представил в Firefox:

enter image description here

Это, кажется, указывает что GET http://gems.hashicorp.com/quick/Marshal.4.8/io-console-0.4.3.gemspec.rz отклоняется моей корпоративной сетью по некоторым причинам, но я могу wget этот URL от той же машины без проблем.

Таким образом, моя следующая строка нападения должна попытаться установить необходимые рубиновые драгоценные камни вручную. До вышеупомянутой ошибки я столкнулся с той же проблемой с bigdecimal-1.2.6 драгоценный камень. В этом случае я смог успешно установить драгоценный камень вручную следующим образом:

 sudo -E gem install bigdecimal -v 1.2.6

Однако io-console-0.4.3 драгоценный камень является другой историей. Я могу вручную установить версии 0.4.2 и 0.4.5, но 0.4.3 не доступно на rubygems.org.

TL; DR

Как я могу установить io-console-0.4.3 драгоценный камень? Или возможно действительно ли возможно так или иначе взломать версии зависимости и возможно использовать 0.4.5 вместо этого?

2
задан 23 May 2017 в 15:39

1 ответ

После чтения Ошибки HTTP более тщательно я понял, что это перестало работать, потому что мой корпоративный брандмауэр блокирует Запросы HTTP с User-Agent: bundler/1.11.2 .... Я смог подтвердить это с curl (работы) по сравнению с curl -A "bundler/1.11.2 ... (не работает).

<час>

административное решение состоит в том, чтобы настроить корпоративный брандмауэр для разрешения bundler как Агента пользователя. Я зарегистрировал внутренний случай - мы будем видеть, куда это идет...

<час>

hacky временное техническое решение состоит в том, чтобы исправить bundler источник, таким образом, это использует более приемлемый Агент пользователя.

  1. Создают файл bundler-hack-useragent.patch со следующим содержанием:
diff --git a/fetcher.rb b/fetcher.rb
index aaf4679..e4738f4 100644
--- a/fetcher.rb
+++ b/fetcher.rb
@@ -238,7 +238,8 @@ module Bundler
         end

         con.read_timeout = Fetcher.api_timeout
-        con.override_headers["User-Agent"] = user_agent
+#        con.override_headers["User-Agent"] = user_agent
+        con.override_headers["User-Agent"] = 'curl/7.19.7'
         con.override_headers["X-Gemfile-Source"] = @remote.original_uri.to_s if @remote.original_uri
         con
       end
  1. Применяют патч:
sudo patch --directory /usr/lib/ruby/vendor_ruby/bundler < bundler-hack-useragent.patch

Этот будет hardcode завихриться как Агент пользователя в /usr/lib/ruby/vendor_ruby/bundler/fetcher.rb. завихритесь работы с моим корпоративным брандмауэром, хотя Вам, вероятно, придется выбрать что-то еще.

1
ответ дан 2 December 2019 в 04:55

Другие вопросы по тегам:

Похожие вопросы: