Zwiększenie tej liczby jest oczywiście "możliwe" ... ale kosztuje również nieco (dodanie do stałego miejsca pamięci R).
Nie ustawiłem tego limitu, ale jestem pewien, że było to również przypomnienie o tym, że useR może "oczyścić" trochę w swojej sesji R, tzn. Niepotrzebnie ładować przestrzeni nazw pakietów. Nie mogę sobie jeszcze wyobrazić, że potrzebujesz> 100 paczek | przestrzenie nazw załadowane w twojej sesji R. OTOH, niektóre pakiety mają obecnie wiele zależności, więc zgadzam się, że to przynajmniej może się zdarzyć przypadkowo częściej niż w przeszłości.
Prawdziwym rozwiązaniem byłoby oczywiście ulepszenie kodu, które zaczyna się od stosunkowo niewielkiej liczby struktur "DLLinfo" (powiedzmy 32), a następnie przydziela więcej partii (o wielkości powiedzmy 32) w razie potrzeby.
Naszywki na źródła R (pnia rozwojowa w subversion na https://svn.r-project.org/R/trunk/) są bardzo mile widziane!
---- dodano Jan 26, 2017: W międzyczasie mieliśmy public bug report o tym, proponowaną łatę (która nie była wystarczająco dobra: zawsze jest zależny od systemu operacyjnego limit liczby otwartych plików), a dziś, że raport o błędzie został zamknięty przez @TomasKalibera rdzeń członkowskich R którzy realizowanych nowy kod gdzie maksymalna liczba załadowanych bibliotek DLL jest ustawiony na
pmax(100, pmin(1000, 0.6* OS_dependent_getrlimit_or_equivalent()))
a więc na Windows i Linux (i jeszcze nie testowane , ale "prawie na pewno" macOS), limit powinien być znacznie wyższy niż poprzednio.
----- Aktualizacja nr 2 (napisana 5 stycznia 2018):
W październiku 17, powyższa zmiana została wprowadzona bardziej automatycznie z następującą zmianą do źródeł (wersji rozwojowej R - tylko!)
r73545 | kalibera | 2017-10-12 14:41:20
Increase the number of DLLs that can be loaded by default. If needed, increase the soft limit on open files.
oraz na stronie pomocy ?dyn.load
(https://stat.ethz.ch/R-manual/R-devel/library/base/html/dynload.html) ulimit -n <num_open_files>
jest teraz wymienić (sekcja Uwaga blisko do dołu).
Więc możesz rozważyć użycie wersji rozwojowej R, aż stanie się ona "głównym strumieniem" w kwietniu.
Alternatywnie, można zrobić (na terminalu/Shell)
ulimit -n 2048
R, a następnie rozpocząć od tego terminala. Tomas Kalibera wspomniał o tym, aby pracować na macOS.
Czy próbowałeś użyć Microsoft R? Nie jestem pewien, czy to zadziała, ale może być realną alternatywą. – hrbrmstr
Właśnie sprawdziłem kod źródłowy Microsoft R. Nie sądzę, że zmienili kod "#define MAX_NUM_DLLS 100". Również niektóre pakiety wymagające kompilacji nie mogą zostać zainstalowane. –