Можно ли переместить корень OPAM? Или создать «переносимую» (в смысле, например, «переносимую Firefox») версию корня OPAM?
То есть установить кучу пакетов через opam --root=/PATH/TO/A
, потом переместить /PATH/TO/A
в /ANOTHER/PATH/TO/B
, и оттуда все запускать.
Наивная попытка привела к небольшой ошибке в "opam config env", где проскочил старый путь. Кроме того, некоторые файлы конфигурации (findlib, global-config) должны были быть скорректированы. После исправления кое-что заработало, но "utop" не работает с
Fatal error: exception Not_found
Является ли это принципиальной проблемой или переносимый корень OPAM — это просто вопрос установки правильных переменных среды после переноса?
./configure
. Я не думаю, что такие пакеты можно легко сделать переносимыми; даже если вы сделаете масштабноеsed
и вручную замените их абсолютные пути относительными в каждом файле конфигурации, который вы найдете, возможно, некоторые из них перестанут работать. Например, они могут иметь жестко заданные абсолютные пути внутри своих двоичных файлов, поэтому перемещение корня OPAM потребует их перекомпиляции. Может быть, какой-тоchroot
мог бы сработать, но я недостаточно знаю об этом, чтобы что-то предложить. - person anol   schedule 26.04.2018