2016-02-19 26 views
5

Używam R CMD INSTALL --build package na komputerze z systemem Windows. Mój pakiet importuje kilka innych pakietów, które same zależą od kilku dodatkowych pakietów. Mam wszystkie zależności zainstalowane w lokalnym folderze r_libs i wszystko działa.Jak korzystać z narzędzia R CMD Instalacja bez sprawdzania zależności?

Teraz czasami mam kod źródłowy mojego pakietu na innym komputerze z systemem Windows. Na tym komputerze nie mam zainstalowanych wszystkich pakietów zależności.

Kiedy próbuję użyć R CMD INSTALL --build package, mam oczywistym "ERROR: dependencies 'package a', 'package b', etc, are not available for package"

Moje pytanie brzmi:. Mogę zbudować pakiet za pomocą R CMD INSTALL --build bez kontroli zależność i bez zdejmowania Import i Depends wpisy w pliku DESCRIPTION?

Po konsultacji --help, próbowałem opcję --no-test-load, ale bez powodzenia.

+0

Nie wiem, czy mam rozumieć, czy chcesz zainstalować pakiet bez instalowania zależności? – nicola

+3

@nicola OP chce zbudować plik binarny systemu Windows bez zainstalowanych wszystkich zależności. AFAIK, który nie jest możliwy. –

+0

@JorisMeys, popraw. Eksperymentowałem trochę więcej i odkryłem, że mogę to zrobić w R za pomocą install.packages ("package", repos = NULL, type = 'source', INSTALL_opts = "- build"). Jednak nadal byłbym zainteresowany, czy można to zrobić za pomocą R CMD INSTALL? –

Odpowiedz

3

Sądzę chcesz zbudować .zip binarną wersję pakietu na komp gdzie nie są zainstalowane wszystkie zależności. I obawiam się, że muszę cię rozczarować, ponieważ nie będzie to możliwe.

Budowanie pakietu binarnego odbywa się w dwóch etapach: najpierw pakiet jest instalowany ze źródła (dlatego należy użyć R CMD INSTALL, a utworzone pliki binarne są spakowane w wygodnym formacie do instalacji na komputerze z systemem Windows. sprawdzane w czasie instalacji ze źródła, a wszelkie brakujące zależności spowodują błąd, z którym się spotkasz:

Ponieważ R potrzebuje informacji z zależności w czasie instalacji ze źródła, nie można obejść ich instalowania przed zbudowaniem Wszystko to ma sens: zainstalowany pakiet w R zawiera zestaw plików .rds, które zawierają informacje o pakiecie w bardziej wygodnym formacie R. Aby utworzyć te informacje dla pliku NAMESPACE, musi być w stanie uzyskać dostęp do pakietów, z których funkcje są importowane. Jeśli nie, nie może utworzyć poprawnych informacji o przestrzeni nazw.

Tak więc jedyną opcją jest zainstalowanie zależności na komputerze używanym do kompilacji. A jeśli rzeczywiście chcesz użyć pakietu na tym komputerze, i tak musisz zainstalować te zależności.

Więcej informacji: R Internals: https://cran.r-project.org/doc/manuals/r-release/R-ints.html#Package-Structure

Writing R Extensions: https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Package-namespaces

Powiązane problemy