Подтвердить что ты не робот

Как сообщить интерпретатору R, как использовать прокси-сервер?

Я пытаюсь получить R (работает в Windows), чтобы загрузить некоторые пакеты из Интернета, но загрузка завершилась неудачно, потому что я не могу заставить его правильно использовать необходимый прокси-сервер. Выходной текст, когда я пытаюсь использовать опцию меню Windows Пакеты > Установить пакет (ы)... и выбрать зеркало CRAN:

> utils:::menuInstallPkgs()
--- Please select a CRAN mirror for use in this session ---
Warning: unable to access index for repository http://cran.opensourceresources.org/bin/windows/contrib/2.12
Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.12
Error in install.packages(NULL, .libPaths()[1L], dependencies = NA, type = type) :
    no packages were specified
In addition: Warning message:
In open.connection(con, "r") :
    cannot open: HTTP status was '407 Proxy Authentication Required'

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

Чтобы установить прокси-сервер, я пробовал каждое из следующих действий:

  • Sys.setenv(http_proxy="http://proxy.example.com:8080")
  • Sys.setenv("http_proxy"="http://proxy.example.com:8080")
  • Sys.setenv(http_proxy="http://proxy.example.com:8080")
  • Sys.setenv("http_proxy"="http://proxy.example.com:8080")

Для аутентификации я также попытался установить переменную среды http_proxy_user в значение:

  • ask
  • user:passwd
  • Оставить его нетронутым

Я правильно использую правильные команды?

4b9b3361

Ответ 1

У вас есть два варианта:

  • Используйте -internet2 или setInternet2 (TRUE) и задайте данные прокси-сервера на панели управления, в меню "Свойства обозревателя"
  • Не используйте либо --internet2, либо setInternet2 (FALSE), но укажите переменные среды

EDIT: Один трюк: вы не можете изменить свое мнение между 1 и 2 после того, как вы попробовали его в сеансе, т.е. если вы запустите команду setInternet2 (TRUE) и попробуйте использовать его, например. install.packages('reshape2'), если это не удается, вы не можете вызвать setInternet2 (FALSE). Вы должны перезапустить сеанс R.

Начиная с версии 3.2.0, функция setInternet2 может устанавливать настройки подключения к Интернету и изменять их в пределах того же сеанса R. Не нужно перезапускать.


При использовании опции 2 одним способом (который является хорошим и компактным) для указания имени пользователя и пароля является http_proxy = "http://user: [email protected]: 8080/"

В прошлом мне повезло с вариантом 2

Ответ 2

Если вы хотите, чтобы internet2 использовался каждый раз, когда вы используете R, вы можете добавить следующую строку в файл Rprofile.site, который находится в файле R.x.x\etc\Rprofile.site

utils::setInternet2(TRUE)

Ответ 3

install.packages( "RCurl" )

который решит вашу проблему.