Как сообщить интерпретатору 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
- Оставить его нетронутым
Я правильно использую правильные команды?
Ответы
Ответ 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" )
который решит вашу проблему.