Як вибрати дзеркало 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')

Тут у вас є список дзеркал для Р.


1
Для мене прийшов спливаючий репост, я натиснув дзеркало, і тоді нічого не сталося; тим часом це спрацювало чудово. Програмне рішення> інтерактивне рішення, як завжди! Дякую!
MichaelChirico

Ось кілька дзеркал, з яких можна вибрати, щоб бути люб’язними:
варильні панелі

Я вважаю це корисним рішенням для встановлення недавнього пакету в MRO. Я провів день, намагаючись встановити недавню версію встановленого пакета, але checkpointфункція не спрацювала, як описано, використовуючи розподілення Anaconda R, v3.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"був кращим, оскільки він відображає а) https-доступ та б) CDN "завжди поруч з вами".


3
Я думаю, це має бути прийнятою відповіддю. Це просто працює (tm), у всіх випадках, у тому числі на безголівкових системах (серверах, 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 / Knr. Ви можете використовувати repoоптичне дзеркало або сховище для 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.