Instalacja Offline pakietu R I zależności
Załóżmy, że muszę zainstalować kilka pakietów na komputerze (Linux), który nie ma połączenia z Internetem. Załóżmy, że pobrałem kopię cran i wypaliłem ją na DVD, które przynoszę do lokalizacji offline: {]}
wget ftp://cran.r-project.org/pub/R/src/contrib/*.tar.gz
Mogę nawet dodać plik PACKAGES, który zawiera przegląd wszystkich pakietów źródłowych i ich zależności:
library(tools)
write_PACKAGES()
Jak mogę użyć tego offline, aby zainstalować pakiet źródłowy w taki sposób, że zależności są rozwiązywane i instalowane z lokalnego akta też? Na przykład, ktoś chce zainstalować pakiet ggplot2, który ma dość głęboką strukturę zależności. Załóżmy, że pakiet źródłowy ggplot2 i wszystkie jego zależności są dostępne jako pakiety źródłowe w bieżącym katalogu roboczym. If I do:
install.packages("ggplot2_0.9.1.tar.gz", repos=NULL)
Powoduje to błąd, ponieważ zależności nie są w ogóle rozwiązywane. Alternatywnie:
install.packages(list.files(pattern="*.tar.gz"), repos=NULL)
Jednak to również ignoruje strukturę zależności i próbuje zainstalować pakiety w porządku alfabetycznym, które również zawiedzie.
Przyjrzałem się available.packages
i contrib.url
, ale nie mogę znaleźć przykładu instalacji pakietu źródłowego z lokalnego pliku zawierającego jego zależności.
3 answers
Prawidłową odpowiedź dał Joshua Ulrich w komentarzu do pytania:
Kluczem jest prefiks argumentu na repos
lub contriburl
z file://
. Więc w systemach Unixy można zrobić:
install.packages("ggplot2", contriburl="file:///path/to/packages/")
Zakłada to, że wszystkie wymagane pakiety źródłowe, a także plik indeksu pakietów jest dostępny w /path/to/packages
. Jeśli nie ma pliku PACKAGES, należy go najpierw wygenerować używając:
library(tools)
write_PACKAGES("/path/to/packages/")
Który wygeneruje indeks wszystkich pakietów źródłowych znalezionych w tym katalogu. Zauważ, że w przykładzie za przedrostkiem file:
znajdują się 3 ukośniki. Trzeci ukośnik wskazuje ścieżkę względem katalogu głównego systemu plików.
Różnica między argumentem repos
i contriburl
polega na tym, że repos
doda Inny /src/contrib
do podanej ścieżki, ponieważ zwykle jest to miejsce, w którym pakiety źródłowe znajdują się w oficjalnym repozytorium Cran.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-02 19:01:21
W odniesieniu do odpowiedzi powyżej, jeśli instalacja odbywa się w systemie Windows, To write_packages() generuje dwa pliki: PACKAGES i PACKAGES.gz w katalogu ' / path / to / packages/', gdzie znajdują się wszystkie pliki zip. Pakiety plików.gz należy usunąć przed instalacją.funkcja packages() jest w stanie poprawnie odczytać pojedynczy plik PACKAGES, w przeciwnym razie pojawia się błąd "nie można otworzyć skompresowanego pliku".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-06 09:38:23
Miałem te same problemy podczas instalacji offline. Jakoś to nie działa przez wiersz poleceń.
Pobrałem, wyodrębniłem wszystkie zależności (sprawdzając wymaganą wersję min) i wklejałem foldery do folderu biblioteki. W ten sposób rozwiązano tylko mój problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-22 12:30:07