Як встановити пакет R з джерела?


392

Друг прислав мені з цього великого підручника з webscraping NYTimes з R . Я дуже хотів би спробувати. Однак перший крок - встановити пакет з назвою RJSONIO з джерела.

Я досить добре знаю R, але поняття не маю, як встановити пакет з джерела.

Я запускаю Mac OSX.


1
Це дуже тісно пов'язано: stackoverflow.com/questions/11105131 / ...
GSEE

Відповіді:


486

Якщо у вас є файл локально, використовуйте install.packages()та встановіть repos=NULL:

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

Де path_to_fileбуде представлений повний шлях та ім'я файлу:

  • У Windows це буде виглядати приблизно так: "C:\\RJSONIO_0.2-3.tar.gz".
  • В UNIX це буде виглядати наступним чином : "/home/blah/RJSONIO_0.2-3.tar.gz".

2
Це також працює, якщо file_name_and_pathмісцеве джерело сховища пакету R.
Faheem Mitha

1
Зверніть увагу, що INSTALL_optsпараметр можна використовувати для передачі параметрів R CMD INSTALL. Наприклад, наприклад "--no-multiarch"
Енді Барбор

2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") я отримую цю помилку: -ksh: синтаксична помилка: `('несподівано
iaav

3
Як зазначав @Cerin, ви повинні подбати про розширення. У мене виникла помилка "(як" lib "не вказано)" з R із архівами .zip. Це все добре працює після зміни розширення на .tar.
Мохаммед Хасан

2
Варто зазначити, що оскільки repos = NULLцей підхід не встановить залежності, наприклад від CRAN. ця відповідь підказує, devtools::install_local(path_to_file)який для мене простіший (менше аргументів для надання) та кращий (також встановлює залежності).
мак

97

Завантажте вихідний пакет, відкрийте Terminal.app, перейдіть до каталогу, де у вас є файл, а потім виконайте:

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

Зверніть увагу, що це вдасться лише тоді, коли: а) пакет не потребує компіляції або б) необхідні системні засоби для компіляції є. Дивіться: https://cran.r-project.org/bin/macosx/tools/


3
Я спробував це і отримав помилку: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD ВСТАНОВИТИ RJSONIO_0.2-3.tar.gz Попередження: недійсний пакет 'RJSONIO_0.2-3.tar.gz' Помилка: ПОМИЛКА: помилок немає вказано

1
Ви повинні вказати правильний шлях до файлу .tar.gz та необхідні інструменти XCode ( developer.apple.com/TOOLS/Xcode ).
rcs

1
Чи є спосіб побудувати бінарний .zip з джерела?
haridsv

5
Знайшовши рішення, потрібно скористатися --бінарною опцією.
haridsv

Скільки разів ви приїжджали сюди, тому що ви ввели інсталяцію замість INSTALL?
Брендон Бертелсен

50

Ви можете встановити безпосередньо з сховища (зверніть увагу на type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")

3
Я спробував це і отримав помилку: * Встановлення вихідного пакету 'RJSONIO' ... ** libs ** arch - i386 sh: make: команда не знайдено Помилка: компіляція не вдалася до пакету 'RJSONIO' RMate зупинився на рядку 3 * Видалення ' /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'Завантажені пакети є у / приватні / var / папки / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / завантажені_пакеті_пакети індекс пакунків у '.Library' Попереджувальне повідомлення: In install.packages ("RJSONIO", repos = " omegahat.org/R " ,: установка пакета "RJSONIO" мала статус нульового виходу

6
У вас встановлені інструменти для розробників? Вони поставляються у DVD-дисках для встановлення Mac OS X. Оскільки цей пакет має код C, вам знадобиться компілятор, щоб встановити його з джерела.
Едуардо Леоні

1
Я підозрюю, що у мене не встановлені інструменти для розробників. Принаймні, я не пам’ятаю їх встановлення. Дякую!

4
Якщо ви робите це у Windows, ви можете отримати інструменти для розробників від murdoch-sutherland.com/Rtools ... при установці переконайтеся, що ви встановите прапорець, у якому написано оновлення вашого шляху (читати це може бути важко ... щойно встановив прапорець, що з’являється,
Дан Голдштейн

27

Додатковий зручний (але тривіальний) підказки для встановлення старішої версії пакетів з джерела.

По-перше, якщо ви викликаєте "install.packages", він завжди встановлює останній пакет від repo. Якщо ви хочете встановити старішу версію пакетів, скажімо, про сумісність, ви можете зателефонувати install.packages ("url_to_source", repo = NULL, type = "source"). Наприклад:

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

Не завантажуючи вручну пакети на локальний диск і не перемикаючись на командний рядок або встановлюючи з локального диска, я виявив, що це дуже зручно і спростити виклик (однокроковий).

Плюс: ви можете використовувати цей трюк з dev_mode бібліотеки devtools для управління різними версіями пакетів:

Довідка: doc devtools


9

Від cran ви можете встановити безпосередньо з адреси сховища github. Тож якщо ви хочете отримати пакунок за адресою https://github.com/twitter/AnomalyDetection:

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

робить трюк.


8

Крім того, ви можете побудувати двійковий пакет за допомогою параметра --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz

21
R CMD build --binaryзастаріла; використовувати R CMD INSTALL --buildзамість цього
f3lix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.