Jak wybrać lustro CRAN w R

177

Próbuję zainstalować pakiet za pomocą znaku zachęty R, wykonując następujące czynności:

install.packages('RMySQL')

Ale wynik jest następujący:

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

I nic więcej! Nie mogę znaleźć rozwiązania tego bardzo podstawowego problemu. Co mam wpisać, aby wybrać lustro CRAN?

EDYTOWAĆ:

System operacyjny: Mac-OS X 10.6.8 R Wersja: 2.15.0

Jim Johnson
źródło
1
powinien pojawić się lista liczb od 1 do 100 odpowiadających lusterku, spróbuj wpisać 84 i naciśnij enter
pyCthon.
1
dodaj także używany system operacyjny i wersję R
pyCthon.
1
Powinno pojawić się okno z wyborem lub lista wyborów powinna pojawić się w konsoli. Czy szukałeś osobnego okna z opcjami? Jak masz R?
sayhey69
@pyCthon Wpisałem 84, ale nic nie jest zwracane.
Jim Johnson,
@ sayhey69 Po prostu uruchamiam R, wywołując monit z mojego terminala. Po prostu wpisuję r i pojawia się tłumacz. Nigdy nie pojawiały się osobne okna z prośbą o wybór.
Jim Johnson,

Odpowiedzi:

277

Powinieneś otrzymać okno z listą repozytoriów lub menu tekstowe z kilkoma opcjami. Ale jeśli to się nie pojawia, zawsze możesz określić serwer lustrzany, z którego chcesz pobrać pakiety, używając reposparametru. Robiąc to, R nie będzie już cię pytać o repozytorium. Przykład:

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

Tutaj masz listę mirrorów R.

betabandido
źródło
1
Dla mnie pojawiło się wyskakujące okienko repozytorium, kliknąłem lustro i nic się nie stało; tymczasem to działało dobrze. Rozwiązanie programistyczne> rozwiązanie interaktywne, jak zwykle! Dzięki!
MichaelChirico
A oto kilka luster do wyboru, aby być miłym dla dźwigu
hobs
Znalazłem to przydatne obejście, aby zainstalować najnowszy pakiet w MRO. Spędziłem dzień, próbując zainstalować najnowszą kompilację pakietu, ale checkpointfunkcja nie działała zgodnie z opisem przy użyciu dystrybucji R w wersji 3.4.3 firmy Anaconda z migawką ustawioną na 2017-09-01.
Steven C. Howell,
93

Oto co robię, czyli w zasadzie prosto ze example(Startup)strony:

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

który jest w ~/.Rprofile.

Edycja: ponieważ jest teraz 2018, możemy dodać, że przez ostatnie kilka lat "https://cloud.r-project.org"preferowany był adres URL , ponieważ odzwierciedla a) dostęp https oraz b) CDN „zawsze blisko Ciebie”.

Dirk Eddelbuettel
źródło
3
Myślę, że to powinna być akceptowana odpowiedź. It Just Works (tm) we wszystkich przypadkach, w tym w systemach headless (serwery, IoT itp.). Dzięki, Dirk.
Jesse Adelman,
4
Z perspektywy czasu, kilka lat później, mamy teraz właściwy CDN, który na pewno będzie blisko każdego do sieci, i używamy go httpsteraz, więc utwórz go https://cloud.r-project.orgjako adres URL.
Dirk Eddelbuettel,
Mam nadzieję, że nie masz nic przeciwko, Dirk, ale właśnie zredagowałem Twój post, aby odzwierciedlić Twoją sugestię.
Jesse Adelman
Gdybym chciał, mógłbym to zrobić cztery godziny temu sam. Wolę, żeby przemówił zapis historyczny. Ale ponieważ przyjdą wandale, umieściłem postscriptum.
Dirk Eddelbuettel
61

Jestem fanem:

chooseCRANmirror()

Spowoduje to wyświetlenie listy serwerów lustrzanych na wyjściu (nie martw się wyskakującym okienkiem, ponieważ uruchamiasz je z terminala), a następnie wprowadzisz żądaną liczbę.

Jared
źródło
1
Ups, zrób, chooseCRANmirror(81)a pojawi się monit o wprowadzenie numeru. Wszystko w konsoli.
Jared
1
Uwaga: to nie wydaje się aktualizować ani /etc/R/Rprofile.site ani ~ / .Rprofile. (Więc nie jest dobry wybór alternatywnego starego serwera lustrzanego, który zniknął. Lepiej bezpośrednio edytować powyższe pliki.)
Darren Cook,
@DarrenCook Możesz mieć rację, ale uważam, że wiele osób może być zastraszonych tymi plikami. Wiem, że byłem.
Jared,
4
chooseCRANmirror(ind=81)to prawdopodobnie miał na myśli Jared. Pominie to monit.
Casey Watson,
1
Można ustawić options(menu.graphics = FALSE)w .Rprofilezbyt
Andy Barbour
27

Używam rozwiązania ~ / .Rprofile zaproponowanego przez Dirka, ale chciałem tylko na to zwrócić uwagę

chooseCRANmirror(graphics=FALSE)

wydaje się rozsądną rzeczą do zrobienia zamiast

chooseCRANmirror(81)

, co może zadziałać, ale wiąże się z magiczną liczbą 81 (a może jest to subtelny sposób promowania turystyki do 81 = UK (Bristol) :-))

vijucat
źródło
13

Nie można wyświetlić ekranu wyboru repozytorium w systemie (OS X), ponieważ OS X nie zawiera już X11. R próbuje wyświetlić monit przez X11. Zainstaluj X11 z http://xquartz.macosforge.org/landing/ . Następnie uruchom polecenie instalacji. Zostanie wyświetlony monit o wybór repozytorium.

Cahit Gungor
źródło
1
To powinna być akceptowana odpowiedź. Artykuł wsparcia Apple na temat obsługi X11 w systemie OS X jest dostępny pod adresem support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US
Jere Käpyaho
Problem jest prawdopodobnie taki, że okno nie wyświetla się z powodu X11, ale prawdopodobnie parametr chooseCRANmirror()/ reposto znacznie prostsze rozwiązania.
Ben Mosher
4

Jeśli chcesz ustawić serwer lustrzany w sposób nieinteraktywny (na przykład wykonując instalację rbundlera w skrypcie wdrażania), możesz to zrobić w następujący sposób:

Najpierw uruchom ręcznie:

chooseCRANmirror()

Wybierz numer lustra, który jest dla Ciebie najlepszy i zapamiętaj go. Następnie, aby zautomatyzować wybór:

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

Gdzie 87 to numer lustra, którego chcesz użyć. Ten fragment kodu również instaluje zestawienie za Ciebie. Możesz to pominąć, jeśli chcesz.

Kyle
źródło
4

użyłem

chooseCRANmirror(81)

wyświetla monit o wybranie kraju. Następnie możesz dokonać wyboru, wpisując podany tam kod lustrzany kraju.

user3470929
źródło
2

Powinno pojawić się rozwijane menu, z którego możesz wybrać (lub otrzymasz kilka liczb do wyboru), niezależnie od tego, czy używasz R w terminalu, czy IDE, takiego jak RStudio. Jest to obsługiwane w systemach Windows, Mac OS i większości systemów Linux. Może jednak wymagać dodatkowej konfiguracji lub zależności, takich jak X-windows.

Aby włączyć X-windows podczas korzystania ze zdalnego dostępu, użyj następujących -XYflag:

ssh -XY username@server.domain

Często istnieje domyślne repozytorium, ale można je określić, jeśli masz jakiś problem, taki jak uruchamianie skryptów lub Rmarkdown / knitr. Możesz użyć repoopset, kopii lustrzanej lub repozytorium dla CRAN przy każdej instalacji z:

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

Zaleca się korzystanie z najbliższego lustra w Twojej lokalizacji, aby przyspieszyć pobieranie. Na przykład:

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

Możesz również ustawić tę reposopcję w swojej sesji, aby wystarczyło to zrobić tylko raz na sesję interaktywną (lub skrypt). Możesz sprawdzić, czy reposjest skonfigurowany z:

options(repos)

Jeśli otrzymasz "Error in options(repos) : object 'repos' not found", możesz ustawić opcję repozytorium. Na przykład:

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

Wtedy instalacja pakietów powinna działać jak zwykle. Na przykład:

install.packages("RMySQL")

Jak wspominali inni, możesz skonfigurować repozytorium w swoim .Rprofilepliku i sprawić, by działało to we wszystkich skryptach. To od Ciebie zależy, czy wolisz te „globalne” opcje w systemie, czy „lokalne” opcje w sesji lub skrypcie. Te „lokalne” opcje wymagają więcej czasu na użycie każdej sesji, ale mają tę zaletę, że inni mogą używać twoich skryptów, jeśli nie mają twoich .Rprofile.

Tom Kelly
źródło
0

W systemie macOS miałem dokładnie to, co mówisz: monit „wybierz” i nic więcej.

Po otwarciu (i zaktualizowaniu; nie wiem, czy to było istotne) X-Quartz, a następnie ponownym uruchomieniu R i ponownej próbie, po kilku sekundach otrzymałem listę serwerów lustrzanych X-window do wyboru. Za trzecim razem było szybciej.

Chris F Carroll
źródło
0

Możesz także wyłączyć wszystkie menu graficzne, uruchamiając to lub umieszczając w swoim Rprofile

options(menu.graphics = FALSE)
Ekstrapolator
źródło
0

Dodaj do ~/.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
})
user6047846
źródło