Невозможно что-либо рассказать оператору о правилах компиляции C, ни о правилах компоновки OCaml, ни о каких-либо других правилах компиляции, поскольку opam намного выше этого. Ответственность opam заключается в том, чтобы найти пакет с наилучшей подходящей версией, загрузить его и установить, используя сценарии сборки и настройки, предоставляемые сопровождающим пакета.
Хотя opam предоставляет средства для параметров конфигурации пакета, сопровождающий conf-zmq не использует их и не обеспечивает какой-либо параметризации для своего пакета. На самом деле, нет других способов пройти тест установки пакета conf-zmq, кроме как установить их в жестко заданном месте. Вы можете отправить сообщение об ошибке или обратиться к сопровождающему за дальнейшей поддержкой. Вы можете найти все ссылки в файле opam пакета.
Хорошая новость заключается в том, что существует обходной путь. Если описание пакета не работает, вы всегда можете загрузить пакет в локальную файловую систему, исправить его и прикрепить фиксированную версию. И opam теперь будет использовать вашу локальную версию. Если вы хотите распространять свой пакет, вам, конечно, нужно будет сделать sh ваши изменения в апстриме (если вы хотите, чтобы он был доступен для широкой публики c (т.е. через ocaml.org), или просто иметь свой собственный). репозиторий opam (который может содержать только один пакет или несколько пакетов).
Но для начала, здесь первые инструкции по вставке, сначала получите источники, либо клонировав их из репозитория GitHub или просто введя следующую команду:
opam source zmq
Затем вы можете изменить свой рабочий каталог на папку, созданную для вас opam, например, для меня это было
cd zmq.5.1.3/
Тогда (самая сложная часть) взломать пакет, чтобы сделать его устанавливаемым в вашей системе. (Первое, что вам нужно, это сбросить зависимость от поврежденного пакета conf-zmq
). Как только вы будете готовы, или подумайте, что вы готовы просто сделайте
opam pin add .
, чтобы opam выбрал имена пакетов из файлов opam, но если этого не произойдет, см. opam pin --help
для получения дополнительных опций. Затем он попытается установить закрепленный файл. ckage. Если это не удастся, продолжайте взламывать и делать
opam update
opam reinstall zmq # or install
Как только патч будет готов, вы можете либо встроить его в свою автоматизацию, либо создать свой собственный репозиторий opam. Это также очень просто, просто создайте новое репозиторий GitHub (или клонируйте ocaml / opam-repository, не рекомендуется), затем скопируйте определение пакета, которое вы хотели бы изменить (для нас это будет packages/zmq/zmq.5.1.3/
), и примените ваши хаки. к сценариям операций и конфигурации. Если ваши хаки также содержат изменения в исходном коде zmq, вы можете отформатировать их как патчи и добавить, используя строку patches
в вашем файле opam, чтобы применить их на лету.