обновила систему, установился по дефолту 4.2.0, ренв при Ресторе ругается что неверная версия р; есть ли какой-то простой тул способ типа pyenv для того чтобы контролировать версию R? Самое простое - использовать конду, конечно, но хочется что-то более прозрачное для такой нехитрой задачи; и вдогонку вопрос: есть ли способ распараллеливания установки пакетов через renv::restore() ибо при сборке докеровского контейнера очень печально ждать по часу пока скачаются и установятся большие биокондукторовские пакеты;
Похоже, что стоит поглядеть сюда: https://tuxette.nathalievialaneix.eu/2021/02/multiple-versions-of-R.html
насчет докера: если вы образ пересобираете раз в полгода при выходе новой версии R, то часок можно и подождать? Я использовал пакет pak для обычных крановских пакетов. Он как минимум умеет распараллеливать скачивание пакетов. Если же вы по какой-то причине регулярно пересобираете докеры (н-р у вас в одном docker-compose несколько сервисов), то можно либо выборочно обновлять, либо использовать стейджинговые образы. В таком промежуточном образе один раз устанавливаются все пакеты и потом рабочие папки можно скопировать в основной образ каждый раз, когда он пересобирается
На гитхабе, к сожалению, образы пересобираются полностью для интеграционных тестов достаточно часто и это немножко грустно выходит; к слову, может быть кто-то знает ресурсы/книги/курсы/ людей которые научат-подскажут по использованию Р в продакшене? Скорее всего вы скажете что нужен хороший девопс, но девопсов которые знают и умеют в р почти не существует и хотелось это как-то компенсировать
А зачем Вам это все? Почему не иметь одну актуальную версию без ренв?
а что вам нужно тестировать? Если вы какой-то свой софт тестируете и возможности платформы ограничены - то м.б. переехать на другую? В том же DigitalOcean вполне можно сделать стейджинговые образы с R и пакетами, которые можно обновлять только время от времени
Потому как прод в одну голову тащить невозможно. Для себя фризы аппликух можно докерами делать
Как всегда, какой истинный вопрос хотите решить?
Именно такой как задала) есть проект где р часть вспомогательная и обновляется, условно, раз в неделю; но другие части, пусть будет js, обновляются каждый день и для каждого пулл-реквеста на гитхабе коих может быть много даже у одного разработчика (ибо git flow) ждать по часу пока пересоберется р часть ибо интеграционные тесты и все должно пересобираться = боль и хотелось ее уменьшить; но реквест на материалы по девопс делу с Р оставлю открытым; если кто-то мастер в решении подобных задач, то возможно посотрудничать;
А, это у вас CI/CD такой, и гитхаб там у себя для тестов образ по 2 часа собирает? А вы не можете собрать образ с R и пакетами где-то в другом месте и потом в своём скрипте вместо установки пакетов копировать их в образ? Ну допустим, на S3 бакете держать архив с папкой с установленными пакетами и потом её просто разархивировать в новый образ после уановки R? Сам то R быстро ставится обычно
Думала о чем-то подобном, видимо только такой вариант; спасибо
Это разговор, который не тянет на беседу в чате. Реально непонятно что происходит. От архитектуры продукта будет все сильно зависеть. В таких случаях обычно отливается все в докер и фризится. И вообще ничего не собирается. Есть просто готовый докер.
Обсуждают сегодня