Ответ 1
Варианты и исходный код двоичного кода и исходного кода
Вы испытываете трёхое трение между старыми и новыми законами и средами R. Реальность здесь заключается в том, что вам нужно выбирать между стабильностью и прогрессом. Трудно иметь и то, и другое.
Рассматривать:
-
Вы используете R версии 3.2.2 в двоичной форме, эта версия R была выпущена 15 августа 2015 года. Тем не менее, вы пытаетесь установить последнюю версию исходного кода Shiny.
-
Существует трехлетняя дельта между версией исходного кода пакета и используемой вами версией R. Исходный код пакета и исходный код среды R.
-
В настоящее время в среде компиляции и исходного кода произошло множество изменений.
-
Подумайте об этом так.
-
Изображение двоичного пакета представляет собой моментальный снимок предположений среды компиляции и исходного кода во время компиляции. Если вы загружаете текущий образ исходного кода, вы используете моментальный снимок текущей среды кода (сейчас), который включает буквально тысячи небольших дополнительных изменений в предположениях и зависимостях в файлах исходного кода и в среде компиляции. если вы посмотрите в блестящем описании пакета, вы заметите:
-
Shiny
зависит отhttpuv
который зависит отRcpp
-
httpuv построен поверх библиотек libuv и http-parser C.
- Чтобы получить httpuv для компиляции из исходного кода, вам нужно будет вручную сопоставить среду R, зависимые библиотеки и исходные зависимости. Ничего особенного.
-
Дело в том, что для компиляции вышеуказанных пакетов из исходного кода (github) вы, вероятно, будете использовать
Devtools
который, если вы загружаете в двоичной форме, был скомпилирован под R версии 3.2.5.
-
Изменения, допущения и взаимозависимости приводят к сложной ситуации компиляции в обратном порядке. Следовательно, преимущество моментальных снимков двоичных пакетов.
Опции:
В этой ситуации у вас обычно есть два варианта. Вы также можете:
-
Загрузите исходную версию, старую, которая соответствует вашей версии R и среде.
- Недостатком этого подхода является то, что вы не можете получить доступ к текущим функциям пакета.
- Положительным моментом является то, что среда пакета и R соответствует историческому контексту.
-
Переход в текущую среду R
- Недостатком этого подхода является то, что вам нужно кататься с релизами R.
- Положительным моментом является то, что вы получаете доступ к последним функциям пакета, доступным в текущем исходном коде.
Варианты решения:
Как это сделать? В первом случае вы можете использовать devtools :: install_git и вытащить источник для конкретной ветки или версии пакета и скомпилировать его. Во втором случае вы можете обновить свою среду, а затем потянуть и обновить свои пакеты.
Если вы хотите отработать определенную версию среды R, вам нужно использовать двоичные версии. Зачем? Они будут соответствовать предположениям среды кодирования среды среды R.
Это классическая проблема, подчеркивающая толкание между текущим кодом и старым кодом. Вы должны выбирать между стабильностью и прогрессом. Трудно иметь и то, и другое.
Надеюсь, что это поможет объяснить ситуацию.