2012-11-06 5 views
5

Jest to kontynuacja opublikowanej wcześniej wersji question. Podsumowując, piszę pakiet R o nazwie Slidify, który korzysta z wielu zewnętrznych bibliotek nie opartych na R. Moje wcześniejsze pytanie dotyczyło zarządzania zależnościami.R Pakiet z dużymi aktywami zewnętrznymi

Zaproponowano kilka rozwiązań, z których najbardziej atrakcyjnym rozwiązaniem było spakowanie zewnętrznych bibliotek jako innego pakietu R i uczynienie go zależnym od Slidify. Jest to strategia, po której następuje pakiet xlsx, który pakuje zależności java jako inny pakiet xlsxjars.

Alternatywą jest dostarczenie zewnętrznych bibliotek do pobrania i spakowanie funkcji install_libraries w Slidify, która automatycznie pobierze wymagane pliki i pobierze je do katalogu pakietów. Mogę również dodać funkcję update_libraries, która zostanie zaktualizowana, jeśli coś się zmieni.

Moje pytanie brzmi, czy są jakieś konkretne zalety wykonania tańca CRAN dla bibliotek zewnętrznych, które nie są oparte na R. Czy coś mi umyka?

+2

Nie rób 'install_libraries' siekać. Używanie CRAN jako centralnego mechanizmu repo i dystrybucji jest preferowane: 'install.packages()' już istnieje, podobnie jak warianty aktualizacji itp. Poprzez wynalezienie nowego mechanizmu po prostu zejdziesz po śliskim zboczu nowych i niesprawdzonych błędów. Zasadniczo próbujesz wyobrazić sobie, co robi dystrybucja lub system taki jak Fink. Zbyt dużo złożoności. –

+0

Dzię kujemy za pomocĘ ... @Dirk. Zewnętrzne biblioteki mają rozmiar 10 MB i kiedy czytałem dokumentację CRAN, powiedział coś, co utrzymywało rzeczy poniżej 5 MB. Rozumiem, że CRAN zapewnia prosty mechanizm i ma sens, aby go używać wszędzie, gdzie to możliwe. – Ramnath

+0

Czy to Java, jak dla Xlxs i Weka? Wtedy pakiet słoików ma sens. W przeciwnym razie masz problem kompatybilności binarnej i może polegać na poleganiu na użytkowniku. –

Odpowiedz

3

Jak wspomniano w komentarzu gwintem, na opakowaniu jak slidify z kilku dużych, (przeważnie) stałe, a pliki przenośne, pakiet „zasób” ma większy sens:

  • będą znasz ścieżka gdzie jest zainstalowany (jako pakiet będzie się wam)
  • użytkownicy nie mogą przypadkowo umieścić go gdzieś indziej
  • masz CRAN testuje
  • masz dystrybucję CRAN, lustra, ...
  • użytkowników alr eady wiedzieć install.packages() itp
  • bardziej zwinny rozwoju pakietu wykorzystaniem tych stałych części nie jest powstrzymywane przez dużych plików pomocniczych
+0

Dziękujemy za opublikowanie wyczerpującej odpowiedzi @Dirk. Zalety, które opisujesz szczegółowo, stanowią mocną argumentację za dystrybucją nawet zasobów innych niż R za pośrednictwem CRAN. – Ramnath

+1

Otrzymujesz również postawę CRAN ... – hadley

+0

Może podchodzę do postawy CRAN w stosunku do zadowolenia z github? ;-) –