Я хотел бы переместить несколько 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, является разумным.