Как выбрать зеркало CRAN в R


177

Я пытаюсь установить пакет через приглашение R, выполнив следующие действия:

install.packages('RMySQL')

Но вывод выглядит следующим образом:

--- Please select a CRAN mirror for use in this session ---

И ничего больше! Я не могу найти решение этой самой основной проблемы. Что я должен набрать, чтобы выбрать зеркало CRAN?

РЕДАКТИРОВАТЬ:

ОС: Mac-OS X 10.6.8 R Версия: 2.15.0


1
должно появиться список чисел от 1 до 100, отвечающих на зеркало, попробуйте набрать 84 и нажать enter
pyCthon

1
также добавьте, какую ОС вы используете, и какую версию R
pyCthon

1
Либо должно появиться окно с выборами, либо в консоли должен появиться список выборов. Вы проверили для отдельного окна с выбором? Как у тебя работает R?
sayhey69

@pyCthon Я набрал 84, но ничего не возвращается.
Джим Джонсон

@ sayhey69 Я просто запускаю R, вызывая подсказку из моего терминала. Я просто набираю r, и появляется переводчик. У меня никогда не было отдельных окон с просьбой о выборе.
Джим Джонсон

Ответы:


277

Вы должны получить окно со списком репозиториев или текстовое меню с некоторыми опциями. Но если этого не происходит, вы всегда можете указать зеркало, из которого вы можете загрузить пакеты самостоятельно, используя reposпараметр. Сделав это, R больше не будет спрашивать вас о хранилище. Пример:

install.packages('RMySQL', repos='http://cran.us.r-project.org')

Здесь у вас есть список зеркал для R.


1
Для меня появилось всплывающее окно с репозиториями, я щелкнул зеркалом, а потом ничего не произошло; Между тем, это работало нормально. Программное решение> интерактивное решение, как обычно! Спасибо!
MichaelChirico

А вот несколько зеркал на выбор, чтобы быть добрыми к лесоматериал: cran.r-project.org/mirrors.html
варочные панели

Я нашел этот полезный обходной путь для установки недавнего пакета в MRO. Я потратил целый день, пытаясь установить последнюю сборку установленного пакета, но эта checkpointфункция не работала, как описано в дистрибутиве Anaconda версии v.3.4.3 с моментальным снимком, установленным на 2017-09-01.
Стивен Хоуэлл,

93

Вот что я делаю, что в основном прямо со example(Startup)страницы:

## Default repo
local({r <- getOption("repos")
       r["CRAN"] <- "http://cran.r-project.org" 
       options(repos=r)
})

который находится в ~/.Rprofile.

Изменить: Поскольку сейчас 2018 год, мы можем добавить, что в течение последних нескольких лет URL "https://cloud.r-project.org"был предпочтительным, поскольку он отражает a) доступ https и b) CDN "всегда рядом с вами".


3
Я думаю, что это должен быть принятый ответ. Это просто работает (тм), во всех случаях, в том числе на безголовых системах (серверы, IoT и т. Д.). Спасибо, Дирк.
Джесси Адельман

4
И, оглядываясь назад, через несколько лет мы теперь создадим надлежащий CDN, который гарантированно будет близок к сети всем, и мы используем его httpsсейчас, поэтому сделайте это https://cloud.r-project.orgURL-адресом.
Дирк Эддельбюттель

Надеюсь, вы не возражаете, Дирк, но я только отредактировал ваше сообщение, чтобы отразить ваше предложение.
Джесси Адельман

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

61

Я фанат:

chooseCRANmirror()

Который напечатает список зеркал в выводе (не волнуйтесь, всплывающее окно, так как вы запускаете его из терминала), а затем вы вводите номер, который вы хотите.


1
Ой, сделайте, chooseCRANmirror(81)и появится запрос на ввод номера. Все в консоли.
Джаред

1
Примечание. Похоже, это не обновляет файл /etc/R/Rprofile.site или ~ / .Rprofile. (Так что не стоит выбирать альтернативное старое зеркало, которое исчезло. Лучше редактировать вышеуказанные файлы напрямую.)
Даррен Кук

@DarrenCook Вы можете быть правы, но я считаю, что многие люди могут быть запуганы этими файлами. Я знаю, что был.
Джаред

4
chooseCRANmirror(ind=81)вот что, вероятно, имел в виду Джаред. Это обойдёт подсказку.
Кейси Уотсон

1
Можно установить options(menu.graphics = FALSE)в .Rprofileтоже
Энди Barbour

27

Я использую решение ~ / .Rprofile, предложенное Дирком, но я просто хотел отметить, что

chooseCRANmirror(graphics=FALSE)

кажется разумной вещью вместо

chooseCRANmirror(81)

, который может работать, но который включает в себя магическое число 81 (или, может быть, это тонкий способ продвинуть туризм до 81 = Великобритания (Бристоль) :-))


13

Экран выбора репозитория не может отображаться в вашей системе (OS X), поскольку OS X больше не включает X11. R пытается показать вам подсказку через X11. Установите X11 с http://xquartz.macosforge.org/landing/ . Затем запустите команду установки. Будет показана подсказка для выбора репо.


1
Это должен быть принятый ответ. Статья поддержки Apple о поддержке X11 в OS X находится по адресу support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US
Jere Käpyaho

Вероятно, проблема в том, что окно не отображается из-за X11, но, возможно, параметр chooseCRANmirror()/ reposнамного более простые решения.
Бен Мошер

4

Если вам нужно установить зеркало неинтерактивным способом (например, выполнить установку rbundler в сценарии развертывания), вы можете сделать это следующим образом:

Сначала запустите вручную:

chooseCRANmirror()

Выберите наиболее подходящий для вас номер зеркала и запомните его. Затем для автоматизации выбора:

R -e 'chooseCRANmirror(graphics=FALSE, ind=87);library(rbundler);bundle()'

Где 87 - это номер зеркала, которое вы хотели бы использовать. Этот фрагмент также устанавливает rbundle для вас. Вы можете опустить это, если хотите.


4

я использовал

chooseCRANmirror(81)

это дает вам подсказку, чтобы выбрать страну. Затем вы можете сделать выбор, набрав код зеркала страны, указанный там.


2

Должно появиться выпадающее меню, из которого вы можете выбрать (или вы получите набор номеров), независимо от того, используете ли вы R в терминале или IDE, такую ​​как RStudio. Это поддерживается в Windows, Mac OS и большинстве систем Linux. Однако это может потребовать дополнительной настройки или зависимостей, таких как X-windows.

Чтобы включить X-windows при использовании удаленного доступа, используйте следующие -XYфлаги:

ssh -XY username@server.domain

Часто существует репо по умолчанию, но его можно указать, если у вас есть какие-либо проблемы, такие как запуск сценариев или Rmarkdown / knitr. Вы можете использовать repoopset зеркало или репозиторий для CRAN каждый раз, когда вы устанавливаете с:

install.packages("package", repo="<your.nearest.mirror>")

Для более быстрой загрузки рекомендуется использовать ближайшее к вам зеркало. Например:

install.packages("RMySQL", repos="https://cran.stat.auckland.ac.nz/")

Вы также можете установить reposопцию в своем сеансе, так что вам нужно только один раз за интерактивный сеанс (или сценарий). Вы можете проверить, reposнастроен ли с:

options(repos)

Если вы получили, "Error in options(repos) : object 'repos' not found"вы можете установить опцию хранилища. Например:

options(repos = "https://cran.stat.auckland.ac.nz/")

Тогда он должен работать, чтобы установить пакеты, как обычно. Например:

install.packages("RMySQL")

Как уже упоминалось, вы можете настроить репозиторий в своем .Rprofileфайле и использовать его для всех ваших скриптов. Вам решать, предпочитаете ли вы эти «глобальные» параметры в вашей системе или «локальные» параметры в сеансе или сценарии. Эти «локальные» параметры требуют больше времени для использования каждого сеанса, но имеют преимущество, заключающееся в том, что другие могут использовать ваши сценарии, если у них их нет .Rprofile.


0

У меня на macOS было именно то, что вы говорите: «Пожалуйста, выберите», и ничего больше.

После того, как я открыл (и обновил; не знаю, было ли это уместно) X-Quartz, а затем перезапустил R и попытался снова, через несколько секунд я получил список зеркал X-окна на выбор. Это было быстрее в третий раз.


0

Вы также можете отключить все графические меню, запустив это или поместив в свой Rprofile.

options(menu.graphics = FALSE)

0

Добавить в ~/.Rprofile

local({r <- getOption("repos")
    r["CRAN"] <- "mirror_site"  #for example, https://mirrors.ustc.edu.cn/CRAN/
    options(repos=r)
    options(BioC_mirror="bioc_mirror_site") #if using biocLite
})
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.