Я хотел бы переместить несколько библиотек R (*) с одного диска на другой в Linux и хотел бы знать, возможно ли и просто ли это простое перемещение, или мне следует удалить и переустановить пакеты. Я понимаю, что расположение библиотек определяется с помощью .libPaths()
и изучил руководство "R Installation and Administration", чтобы узнать о переносе библиотек, но не вижу рекомендуемого процесса.
Я воспринимаю три варианта:
- Запустите
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, но предложение Дирка Эддельбюттеля не устанавливать пакеты в файловое дерево R разумно.