Как сохранить исходные файлы при использовании библиотечной функции devtools R 'install'

Я пытаюсь собрать пакет R (DESeq2) из ​​исходного кода, чтобы я мог его отладить. Я установил все необходимые зависимости и следую инструкциям Хиллари Паркер по созданию пакетов R. Я запускаю это на CentOS 6.6, используя R-3.4.2.

Я бегу:

library("devtools")
install("DESeq2", keep_source=TRUE)

Он устанавливает его в каталог со всеми моими другими библиотеками R. Когда я смотрю на установленную библиотеку DESeq2, она пропускает все DESeq2/R/*.R а также DESeq2/src/*.cpp файлы.

ВОПРОС: Где находятся эти файлы и почему они не были установлены? Это не похоже на ожидаемое поведение.

1 ответ

R использует двоичный формат базы данных для установленных пакетов, чтобы упаковать объекты в похожий на базу данных формат файла из соображений эффективности (отложенная загрузка). Эти файлы базы данных (*.rdb а также *.rdx) хранятся в подпапке R пути установки пакета (см. ?lazyLoad).

Даже если

  • вы ищете в нужном месте, чтобы найти установленный пакет (используйте .libPaths() в R найти папку установки)
  • и вы установили пакет с исходным кодом (как вы сделали или через install.packages("a_CRAN_package", INSTALL_opts = "--with-keep.source"))

вы не найдете R файлов в папке R там.

Вы можете проверить, доступен ли исходный код, выбрав одно имя функции из пакета и распечатав его на консоли. Если вы видите исходный код (с комментариями), исходные коды пакета (R-файлы) доступны:

print(DeSeq2::any_function)

Чтобы сделать исходный код доступным для отладки и трассировки стека, вы можете установить опцию keep.source.pkgs = TRUE (увидеть ?options) в вашем .Rprofile файл или через переменную окружения:

keep.source.pkgs:

Что касается keep.source, используется только когда пакеты установлены. По умолчанию FALSE, если для переменной среды R_KEEP_PKG_SOURCE не установлено значение yes.

Примечание. Исходный код доступен только для вновь установленных и обновленных пакетов (не для уже установленных пакетов!).

Для получения дополнительной информации см.: https://yetanothermathprogrammingconsultant.blogspot.de/2016/02/r-lazy-load-db-files.html

Другие вопросы по тегам