Нужны ли Rtools для пакетов, установленных с Github? - PullRequest
1 голос
/ 04 августа 2020

Я создаю свой первый пакет, который нужно установить через Github. Я думал, что Rtools нужен только тому, кто его создал. Однако людей, которые пытались установить его с помощью Github, попросили обновить Rtools. Действительно ли это необходимо?

Проведя небольшое исследование, я обнаружил следующее: https://community.rstudio.com/t/missing-rtools-should-i-be-worried/27817

Один из ответов говорит следующее:

"Это означает, что если вы собираетесь устанавливать пакеты, требующие компиляции, вам также необходимо установить Rtools в вашей системе."

Это репозиторий с пакетом: https://github.com/datazoompuc/PNAD_Covid/tree/master/R/datazoom_pnad_covid

Что это на самом деле означает? Как я узнаю, что мой пакет требует компиляции?

Ответы [ 2 ]

3 голосов
/ 04 августа 2020

Ваш пакет «нуждается в компиляции» - т.е. требует установки Rtools из исходного кода (на Windows) - если он содержит C или компоненты Fortran, то есть если у вас есть что-то в каталоге src/ вашего пакета .. .

Если вы, как автор пакета, не знаете, есть ли в вашем пакете код C или Fortran, то вы почти наверняка этого не сделаете.

Вполне возможно что devtools переусердствует, то есть обнаруживает, что пользователи имеют не самую последнюю версию Rtools, и предлагает (требует ??) обновить его, даже если он не нужен для этой установки.

2 голосов
/ 04 августа 2020

Я думал, что Rtools нужен только тому, кто его создал.

Да, если и только если вы распространяете его как двоичный . Затем создатель использует Rtools для компиляции и компоновки, а пользователь просто устанавливает и наслаждается.

Вот как работает CRAN, поскольку CRAN компилируется для Windows пользователей.

GitHub, однако, является прежде всего репозиторий source , поэтому при установке с GitHub используется исходный режим ... и каждый пользователь должен будет компилировать и, следовательно, иметь Rtools. (Если пакет и все его зависимости не являются только R-кодом.)

Вы также можете создать репозиторий пакетов на GitHub, используя например the drat для его создания, но это уводит нас немного дальше от исходного вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...