Как сохранить исходные файлы при использовании библиотечной функции 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