Jak zainstalować pakiet R ze źródła?

392

Znajomy wysłał mnie po tej wielkiej tutorialu na webscraping nytimes R . Naprawdę chciałbym spróbować. Jednak pierwszym krokiem jest zainstalowanie pakietu o nazwie RJSONIO ze źródła.

Znam R dość dobrze, ale nie mam pojęcia, jak zainstalować pakiet ze źródła.

Używam Mac OSX.

Tomasz
źródło
1
Jest to bardzo ściśle powiązane: stackoverflow.com/questions/11105131/...
GSee

Odpowiedzi:

486

Jeśli masz plik lokalnie, użyj install.packages()i ustaw repos=NULL:

install.packages(path_to_file, repos = NULL, type="source")

Gdzie path_to_filereprezentuje pełną ścieżkę i nazwę pliku:

  • W systemie Windows będzie to wyglądać mniej więcej tak: "C:\\RJSONIO_0.2-3.tar.gz".
  • W systemie UNIX będzie wyglądać następująco: "/home/blah/RJSONIO_0.2-3.tar.gz".
Shane
źródło
2
Działa to również, jeśli file_name_and_pathjest to lokalne repozytorium źródłowe pakietu R.
Faheem Mitha
1
Uwaga: tej INSTALL_optsopcji można użyć do przekazania opcji do R CMD INSTALL. Na przykład „--no-multiarch”
Andy Barbour
2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") otrzymuję ten błąd: -ksh: błąd składniowy: `('nieoczekiwany
iaav
3
Jak zauważył @Cerin, musisz zadbać o rozszerzenie. Miałem błąd „(ponieważ„ lib ”jest nieokreślony)” z R z archiwami .zip. Wszystko działa dobrze po zmianie rozszerzenia na .tar.
Mohamed Hasan
2
Warto to zauważyć, ponieważ repos = NULLtakie podejście nie spowoduje zainstalowania zależności np. z CRAN. ta odpowiedź sugeruje, devtools::install_local(path_to_file)która dla mnie jest prostsza (mniej argumentów do dostarczenia) i lepsza (instaluje również zależności).
Mac
97

Pobierz pakiet źródłowy, otwórz Terminal.app, przejdź do katalogu, w którym aktualnie masz plik, a następnie uruchom:

R CMD INSTALL RJSONIO_0.2-3.tar.gz

Zauważ, że to się powiedzie tylko wtedy, gdy: a) pakiet nie wymaga kompilacji lub b) obecne są potrzebne narzędzia systemowe do kompilacji. Zobacz: https://cran.r-project.org/bin/macosx/tools/

rcs
źródło
3
Próbowałem tego i otrzymałem błąd: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD ZAINSTALUJ RJSONIO_0.2-3.tar.gz Ostrzeżenie: niepoprawny pakiet „RJSONIO_0.2-3.tar.gz” Błąd: BŁĄD: brak pakietów określone
1
Musisz podać poprawną ścieżkę do pliku .tar.gz i wymagane są narzędzia XCode ( developer.apple.com/TOOLS/Xcode ).
rcs
1
Czy istnieje sposób na zbudowanie binarnego pliku .zip ze źródła?
haridsv
5
Znalazłem rozwiązanie, musisz użyć opcji --binary.
haridsv
Ile razy tu przychodzisz, ponieważ wpisałeś install zamiast INSTALL?
Brandon Bertelsen
50

Możesz zainstalować bezpośrednio z repozytorium (zwróć uwagę na type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")
Eduardo Leoni
źródło
3
Próbowałem tego i otrzymałem błąd: * Instalowanie pakietu źródłowego „RJSONIO” ... ** libs ** arch - i386 sh: make: polecenie nie znaleziono BŁĄD: kompilacja nie powiodła się dla pakietu „RJSONIO” RMate zatrzymał się w linii 3 * Usuwanie ” /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'Pobrane pakiety znajdują się w' / private / var / folder / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / download_packages 'Aktualizacja HTML indeks pakietów w „.Library” Komunikat ostrzegawczy: W install.packages („RJSONIO”, repos = „ omegahat.org/R,: instalacja pakietu „RJSONIO” miała niezerowy status wyjścia
6
Czy masz zainstalowane narzędzia programistyczne? Pochodzą one z płyty DVD z systemem Mac OS X. Ponieważ ten pakiet ma kod C, będziesz potrzebować kompilatora, aby zainstalować go ze źródła.
Eduardo Leoni
1
Podejrzewam, że nie mam zainstalowanych narzędzi programistycznych. Przynajmniej nie pamiętam ich instalacji. Dzięki!
4
Jeśli robisz to w systemie Windows, możesz uzyskać narzędzia dla programistów z murdoch-sutherland.com/Rtools ... upewnij się, że podczas instalacji zaznacz pole wyboru, aby zaktualizować swoją ścieżkę (może być trochę trudne do odczytania ... , właśnie zaznaczyłem niezaznaczone pole, które się pojawi)
Dan Goldstein,
27

Dodatkowa poręczna (ale trywialna) wskazówka do instalowania starszej wersji pakietów ze źródła.

Po pierwsze, jeśli wywołasz „install.packages”, zawsze instaluje najnowszy pakiet z repo. Jeśli chcesz zainstalować starszą wersję pakietów, powiedzmy dla kompatybilności, możesz wywołać install.packages („url_to_source”, repo = NULL, type = „source”). Na przykład:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source")

Bez ręcznego pobierania pakietów na dysk lokalny i przełączania się do wiersza poleceń lub instalowania z dysku lokalnego uznałem, że jest to bardzo wygodne i upraszcza połączenie (jednoetapowo).

Plus: możesz użyć tej sztuczki z trybem dev_mode biblioteki devtools, aby zarządzać różnymi wersjami pakietów:

Odniesienie: doc devtools

ReneWang
źródło
9

Z Cran można zainstalować bezpośrednio z adresu repozytorium github. Więc jeśli chcesz pakiet w https://github.com/twitter/AnomalyDetection:

library(devtools)
install_github("twitter/AnomalyDetection")

Zrób sztuczkę.

Dodgie
źródło
8

Ponadto można zbudować pakiet binarny za pomocą opcji --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz
haridsv
źródło
21
R CMD build --binaryjest przestarzałe; użyj R CMD INSTALL --buildzamiast tego
f3lix,