2011-01-10 12 views
5

Piszę pakiet R, w którym można tworzyć sieci i wyprowadzać je w różnych typach plików. Znalazłem pakiet SVGRTipsDevice, który można wykorzystać do tworzenia obrazów SVG zawierających podpowiedzi i hiperłącza, które bardzo lubię. Zawarłem to w moim pakiecie jako jedną z opcji wyjścia, co czyni go nie zasadniczą częścią mojego pakietu, ale jego częścią (taką, którą chcę zachować).Zapisywanie pakietu R, który różni się w architekturze

Problem polega na tym, że ten pakiet jest przeznaczony tylko dla użytkowników 32-bitowych. Ponieważ mój pakiet zależy od tego, 64-bitowy użytkownicy nie mogą go zainstalować. wydaje mi się, że albo muszę zrobić pakiet tylko 32-bitowy, albo usunąć zdolności SVG (obecnie wybrałem ten drugi do przesłania do CRAN, z linkiem do pełnego pakietu na mojej stronie).

Czy można to inaczej zrobić inaczej? Jak sprawić, aby pakiet mógł być instalowany dla każdego, ale tylko udostępnić funkcjonalność SVG dla 32-bitowych użytkowników?

+0

Kiedy mówisz "nie jest to istotną częścią mojego pakietu, ale jego częścią", czy tworzysz pakiet za pomocą SVGRTipsDevice w Suggests? – mdsumner

Odpowiedz

4

Pakiety wymienione w polu Suggests: lub Enhances: pliku DESCRIPTION pakietu nie muszą być instalowane w systemie użytkownika, aby pakiet mógł zostać zainstalowany, aby użytkownicy 32/64 bit mogli zainstalować pakiet. Zamiast testowania na bit-ness, możesz ok <- suppressWarnings(require(SVGToolTips))), być może w .onLoad lub podobnie.

+0

Dzięki, to jest dokładnie to, czego potrzebowałem. To mój pierwszy pakiet i robię kilka błędów rekrutów. –

6

Najłatwiej można myślę, jest sprawdzenie Sys.info() dla danego typu maszyny:

Więc na moim komputerze:

Sys.info()["machine"] 
machine 
"x86_64" 

EDIT wierzę, że mówi nam architekturę sprzętu, a nie czy R jest 32 czy 64-bitowe. Więc jeśli użytkownik miał 64-bitowy sprzęt i został uruchomiony 32-bitowy R, powyższy kod będzie jeszcze powrócić x86_64 Jak Sacha wskazał mi, lepszym rozwiązaniem jest uruchomienie:

R.Version()$arch 
[1] "x86_64" 

więc widać jestem z 64-bitowym systemem operacyjnym i używam 64-bitowej wersji R.

+0

Dzięki, to powinno być bardzo przydatne! –

+0

Możesz uzyskać informacje na temat architektury R za pomocą: R.Version() $ arch –

+0

Sacha, to naprawdę dobry punkt. Poprawiłem moją odpowiedź. Dziękuję za wskazanie tego. –

0

Można utworzyć pakiet packagename - 32-bitowy również z dodatkową funkcjonalnością.

Powiązane problemy