Я хотел бы переместить несколько R-библиотек (*) с одного диска на другой, на Linux, и хотел бы знать, является ли простой способ выполнимым и безопасным, или если я должен удалить и переустановить пакеты. Я понимаю, что местоположения библиотек идентифицируются с помощью .libPaths()
и просмотрели руководство по установке и администрированию R, чтобы узнать о миграции библиотек, но не вижу рекомендуемого процесса.
Я воспринимаю три варианта:
- Запустите
remove.packages()
для всех не-базовых пакетов и установите заново черезinstall.packages(lib = "/path/to/new/location")
. - Переместите библиотеки (каталоги) с помощью
mv
и используйте символические ссылки, чтобы указать на новые местоположения (и в конечном итоге удалить символическую ссылку). - Используйте команду
mv
в Linux, чтобы переместить каталоги оптом и обновить.Library.site
вR_HOME/etc/Rprofile.site
, как предложено в R Установка и администрирование руководство
Вариант № 1 тупой. Вариант № 2 должен работать, но кажется немного несостоятельным.
Безопасен ли №3 или есть серьезные проблемы с ним? Проблемы, которые я определил, - это права на доступ к каталогам и возможность того, что любая установка пакета хранит абсолютные пути, а не относительные пути (что кажется необоснованным и ненужным).
Что касается хранения абсолютных путей, я обнаружил, что rJava
хранит расположение R_HOME
в файле с именем run
. Это не проблема библиотеки как таковая, но это один из признаков пакета (и хороший пакет), который хранит личную копию абсолютного пути.
(*) Существует несколько библиотек и множество десятков пакетов. Естественно, что только библиотеки (каталоги) перемещаются, но пакеты могут быть затронуты.
ОБНОВЛЕНИЕ 1/Уточнение: просто для уточнения: я только переношу библиотеки, не изменяя версию R или версии пакетов. Обновление R или пакетов может выполняться отдельно, но вопрос заключается в том, возможно ли перемещение библиотек. Похоже, что если необходимо обновить или переустановить все пакеты, чтобы убедиться, что все установлено правильно, то это путь, более похожий на вариант №1, чем вариант № 3.
ОБНОВЛЕНИЕ 2: Ответы на другое сообщение SO имеют некоторые хорошие идеи о том, как избежать этой проблемы при обновлении. Я не обновляю R, но предложение Dirk Eddelbuettel о том, чтобы не устанавливать пакеты в filetree из R, является разумным.