R 3.1.0 Проблемы при установке пакета Bioconductor

Обновить

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

Проблема

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

Вот мой sessionInfo()

> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.1.0

Я пытался:

  1. установка http_proxy (включая все варианты заглавных букв и https) в .Renviron и .Rprofile
  2. установка переменных прокси в терминале.
  3. установка переменных прокси через Sys.setenv(http_proxy="SERVER:PORT")
  4. все вышеперечисленное как для RStudio, так и для командной строки R

Тем не менее, переменная не установлена: Изменить: Мартин Морган указал, что мне нужны цитаты в вызове getenv. Переменная установлена.

> Sys.getenv(http_proxy)
[1] ""
> Sys.setenv(http_proxy="SERVER:PORT")
> Sys.getenv(http_proxy)
[1] ""

Тем не менее, похоже, что он может подключиться к прокси, но что бы я ни делал, я получаю некоторые варианты из следующего:

> options(internet.info=0)
> source("http://bioconductor.org/biocLite.R")
Error in file(filename, "r", encoding = encoding) : 
  cannot open the connection
In addition: Warning messages:
1: In file(filename, "r", encoding = encoding) :
  connected to 'SERVER' on port PORT.
2: In file(filename, "r", encoding = encoding) :
  -> (Proxy) GET http://bioconductor.org/biocLite.R HTTP/1.0
Host: bioconductor.org
Pragma: no-cache
User-Agent: R (3.0.3 x86_64-apple-darwin13.1.0 x86_64 darwin13.1.0)

3: In file(filename, "r", encoding = encoding) : <- HTTP/1.1 404 Not Found
4: In file(filename, "r", encoding = encoding) :
  <- Content-Type: text/html
5: In file(filename, "r", encoding = encoding) :
  <- Date: Wed, 14 May 2014 18:10:32 GMT
6: In file(filename, "r", encoding = encoding) : <- Connection: close
7: In file(filename, "r", encoding = encoding) : <- Server: mwg-ui
8: In file(filename, "r", encoding = encoding) :
  Code 404, content-type 'text/html'
9: In file(filename, "r", encoding = encoding) :
  cannot open: HTTP status was '404 Not Found'

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

> source("~/Downloads/biocLite.R")
Warning: unable to access index for repository http://www.bioconductor.org/packages/2.14/bioc/src/contrib
'biocLite.R' failed to install 'BiocInstaller', use
  'install.packages("BiocInstaller",
  repos="http://www.bioconductor.org/packages/2.14/bioc")'
Warning message:
package ‘BiocInstaller’ is not available (for R version 3.1.0) 
> install.packages("BiocInstaller",
+   repos="http://www.bioconductor.org/packages/2.14/bioc")
Warning: unable to access index for repository http://www.bioconductor.org/packages/2.14/bioc/src/contrib
Warning message:
package ‘BiocInstaller’ is not available (for R version 3.1.0) 

Обновление: Пробовал скачивать http://bioconductor.org/biocLite.R через wget и curl из командной строки. Работает нормально.

Обновление: я попробовал пару вещей после предложений из разных источников.

  1. # P11 #
    # P12 #
  2. # P13 #
    # P14 #
  3. # P15 #
    # P16 #

person muppetjones    schedule 14.05.2014    source источник
comment
что с названием? у вас v3.1.0 не 3.03   -  person rawr    schedule 14.05.2014
comment
Ах ... спасибо. Я начал с 3.03, потом обновился, пытаясь разобраться. В любом случае результаты будут те же.   -  person muppetjones    schedule 14.05.2014
comment
Приведите аргумент Sys.getenv("http_proxy"), хотя я не понимаю, как это помогает в решении вашей проблемы.   -  person Martin Morgan    schedule 14.05.2014
comment
Это исправляет вызов getenv. Спасибо!   -  person muppetjones    schedule 15.05.2014


Ответы (1)


Благодаря комментарию @zhanxw я еще раз взглянул на то, что происходит, и понял, что, хотя к прокси-серверу обращались, R использовал неправильный порт.

И вот почему: у меня была дополнительная косая черта в конце моего http_proxy, которая (я предполагаю) заставила R неправильно проанализировать переменную окружения. http_proxy = "http: // [СЕРВЕР]: [ПОРТ] /" После того, как я удалил косую черту в конце, он работает нормально.

Ниже представлено оригинальное "решение", которое я опубликовал.


Обходной путь, но не полное решение:

options(download.file.method="wget")

Это все еще не решает исходную проблему:

источник ("http://bioconductor.org/biocLite.R") Ошибка в файле (имя_файла, " r ", encoding = encoding): не удается открыть соединение

Но это позволяет использовать альтернативный метод:

> install.packages("BiocInstaller", repos="http://bioconductor.org/packages/2.14/bioc")--2014-05-14 16:08:18--  http://bioconductor.org/packages/2.14/bioc/src/contrib/BiocInstaller_1.14.2.tar.gz
Resolving SERVER... IP, IP, IP, ...
Connecting to SERVER|IP|:PORT... connected.
Proxy request sent, awaiting response... 200 OK
Length: 14053 (14K) [application/x-gzip]
Saving to: '/var/folders/p1/5gstd7bn1hb1t8pd6b7bp5n00000gp/T//RtmpFm0GR3/downloaded_packages/BiocInstaller_1.14.2.tar.gz'

100%[=============================================>] 14,053      --.-K/s   in 0s    
person muppetjones    schedule 14.05.2014
comment
Я думаю, что source () безразличен к параметру download.file.method, поэтому, вероятно, он не сработает, однако download.file () его уважает, поэтому вы можете сделать это: download.file ("http://bioconductor.org/biocLite.R", biocLite.R ); источник (biocLite.R) - person Dan Tenenbaum; 15.05.2014
comment
Вы правы насчет 'source ()'. К сожалению, если я правильно помню, загрузка файла по-прежнему не работает, потому что последующий 'source ()' все еще пытается пройти через брандмауэр и терпит неудачу. - person muppetjones; 18.07.2014
comment
@muppetjones, что за сообщение об ошибке? Сейчас я использую UTSW VPN и могу запустить source("http://bioconductor.org/biocLite.R") без проблем. (R-3.1.0, с установленными переменными среды proxy_http.) - person zhanxw; 27.07.2014