Установка списка пакетов в OPAM - PullRequest
1 голос
/ 16 апреля 2020

OPAM - отличный менеджер пакетов для OCaml.

Есть ли способ установить данный список пакетов, как pip в Python (с помощью команды pip -r requirements.txt)?

У нас есть небольшое репо Git, которым поделились несколько человек, и было бы неплохо просто установить все зависимости проекта в одном go.

И да, мы могли бы иметь небольшой сценарий оболочки или список пакетов в файле .txt и перенаправить его на opam install ... но может быть лучшее решение.

Спасибо

1 Ответ

3 голосов
/ 16 апреля 2020

Если у вас есть зависимости, указанные в файле NAME.opam (или просто opam) в вашем проекте, вы можете запустить

opam install . --deps-only

Это установит все зависимости для вашего пакета (или пакетов, если вы в вашем проекте есть несколько файлов с операциями).

По умолчанию оператор игнорирует незафиксированные изменения, поэтому, если вы хотите выполнить эту команду с измененными файлами операций, вам нужно добавить --working-dir.

При желании вы можете заблокировать версии зависимостей, используемые при запуске opam lock, это создаст файлы .opam.locked. opam-lock - это отдельный плагин в 2.0.5 (и, вероятно, до 2.1), поэтому opam предложит установить его.

При наличии файлов блокировки вы также должны добавить --locked к opam install, чтобы спросить чтобы использовать файл блокировки и установить точно такие же версии.

Я бы также порекомендовал добавить -j X, где X - количество доступных ядер, которое ускорит процесс.

Обычно в моих файлах Makefile есть следующее:

deps:
        opam install . --deps-only --locked --working-dir

Синтаксис файлов .opam описан здесь

...