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


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.


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”.


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ę.


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) :-))


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.


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.


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.


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.


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.


0

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

options(menu.graphics = FALSE)

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
})
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.