В Ocaml Camlp5 не устанавливается (необходимо использовать Котировки)

В Ocaml 4 я должен использовать модуль Quotation для его функций Quotation.add и Quotation.ExStr. Похоже, для этого мне нужно установить библиотеку Camlp5 (кажется, препроцессор). Нашел много информации о Camlp, например:

Но никаких инструкций по установке нет, поэтому я попробовал: opam install camlp5 с результатом:

┌─ The following actions failed
│ λ build conf-perl-ipc-system-simple 1
│ λ build conf-perl-string-shellquote 1
└─ 
╶─ No changes have been performed

Таким образом, кажется, что некоторых зависимостей нет, и я попробовал: opam depext --install camlp5 с результатом:

┌─ The following actions failed
│ λ build conf-perl-ipc-system-simple 1
│ λ build conf-perl-string-shellquote 1
└─ 
╶─ No changes have been performed
# Run eval $(opam env) to update the current shell environment

Так что вроде не работает.

Диагностика ошибок одинакова для обеих команд:


The following actions will be performed:
  ∗ install conf-perl-string-shellquote 1       [required by camlp5]
  ∗ install conf-perl-ipc-system-simple 1       [required by camlp5]
  ∗ install camlp5                      8.00.01
===== ∗ 3 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><>  ???? 
[camlp5.8.00.01] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  ???? 
[ERROR] The compilation of conf-perl-ipc-system-simple failed at
        "/Users/.../.opam/opam-init/hooks/sandbox.sh build perl
        -MIPC::System::Simple -e 1".
[ERROR] The compilation of conf-perl-string-shellquote failed at
        "/Users/.../.opam/opam-init/hooks/sandbox.sh build perl
        -MString::ShellQuote -e 1".

#=== ERROR while compiling conf-perl-string-shellquote.1 ======================#
# context     2.0.8 | macos/x86_64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#ff95b837
# path        ~/.opam/4.10.2/.opam-switch/build/conf-perl-string-shellquote.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build perl -MString::ShellQuote -e 1
# exit-code   2
# env-file    ~/.opam/log/conf-perl-string-shellquote-1585-1872ec.env
# output-file ~/.opam/log/conf-perl-string-shellquote-1585-1872ec.out
### output ###
# Can't locate String/ShellQuote.pm in @INC (you may need to install the String::ShellQuote module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras[...]
# BEGIN failed--compilation aborted.


#=== ERROR while compiling conf-perl-ipc-system-simple.1 ======================#
# context     2.0.8 | macos/x86_64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#ff95b837
# path        ~/.opam/4.10.2/.opam-switch/build/conf-perl-ipc-system-simple.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build perl -MIPC::System::Simple -e 1
# exit-code   2
# env-file    ~/.opam/log/conf-perl-ipc-system-simple-1585-d2c37b.env
# output-file ~/.opam/log/conf-perl-ipc-system-simple-1585-d2c37b.out
### output ###
# Can't locate IPC/System/Simple.pm in @INC (you may need to install the IPC::System::Simple module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extra[...]
# BEGIN failed--compilation aborted.



Я пробовал похожие и альтернативные в течение нескольких часов и не могу этого добиться. Любая помощь?

PS1: Я работаю в MAC. PS2: Если кто-то хочет, мой контекст для этой проблемы заключается в том, что я хочу использовать функции одного каталога, который для меня является черным ящиком, и все примеры написаны с помощью синтаксического анализатора, например <<y+2=5>>, поэтому я не знаю грамматики и нужно добиться, чтобы синтаксический анализатор запустился.

РЕДАКТИРОВАТЬ 1 (решение, предложенное Ivg)

После того, как Ivg попробовал обе команды предлагаемого решения (отвечая local::lib на один из вопросов и yes на другие), вторая из ошибок, похоже, была исправлена ​​при выполнении opam install camlp5:

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>  ???? 
┌─ The following actions failed
│ λ build conf-perl-ipc-system-simple 1
└─ 
┌─ The following changes have been performed (the rest was aborted)
│ ∗ install conf-perl-string-shellquote 1
└─ 

Где был весь терминал:

... ~ % opam install camlp5
The following actions will be performed:
  ∗ install conf-perl-string-shellquote 1       [required by camlp5]
  ∗ install conf-perl-ipc-system-simple 1       [required by camlp5]
  ∗ install camlp5                      8.00.01
===== ∗ 3 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><>  ???? 
[camlp5.8.00.01] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  ???? 
[ERROR] The compilation of conf-perl-ipc-system-simple failed at
        "/Users/.../.opam/opam-init/hooks/sandbox.sh build perl
        -MIPC::System::Simple -e 1".
∗ installed conf-perl-string-shellquote.1

#=== ERROR while compiling conf-perl-ipc-system-simple.1 ======================#
# context     2.0.8 | macos/x86_64 | ocaml-base-compiler.4.10.2 | https://opam.ocaml.org#ff95b837
# path        ~/.opam/4.10.2/.opam-switch/build/conf-perl-ipc-system-simple.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build perl -MIPC::System::Simple -e 1
# exit-code   2
# env-file    ~/.opam/log/conf-perl-ipc-system-simple-20351-1872ec.env
# output-file ~/.opam/log/conf-perl-ipc-system-simple-20351-1872ec.out
### output ###
# Can't locate IPC/System/Simple.pm in @INC (you may need to install the IPC::System::Simple module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level /Library/Perl/Updates/5.18.4 /System/Library/Perl/5.18/darwin-thread-multi-2le[...]
# BEGIN failed--compilation aborted.

РЕДАКТИРОВАТЬ 2 (решено, повторение)

Вдруг это сработало. Написал еще раз sudo cpan IPC::System::Simple (сейчас вопросов не было) и после этого opam install conf-perl-ipc-system-simple.

Все равно модуль Quoation у меня не открывается.


person Theo Deep    schedule 17.05.2021    source источник
comment
Вам не хватает фактического сообщения об ошибке. В вашем выводе. Сообщение, которое вы показываете, - это просто сообщение оператора связи по умолчанию о том, что миссия не удалась. Чтобы перейти к интересному, вам нужно прокрутить вверх. Учитывая, что он не может установить системные пакеты, я бы посоветовал вам установить Homebrew и убедиться, что он работает нормально, а затем повторите попытку.   -  person ivg    schedule 17.05.2021
comment
Полностью. Я обновил сообщение целиком. Кроме того, у меня уже есть homebrew, поэтому я сделал brew install camlp5, который был успешно установлен. Затем я открыл верхний уровень письма ocaml. Затем я сделал и open Quotation, и open Camlp5, но никто не работает.   -  person Theo Deep    schedule 17.05.2021


Ответы (1)


Сообщения об ошибках указывают на то, что в вашей установке perl отсутствуют два модуля: String::ShellQuote и IPC::System::Simple. Поскольку opam не знает, как это сделать в macOS (существует слишком много вариантов), это просто указывает на то, что эти модули отсутствуют и требуются для установки camlp5, поэтому она не может быть продолжена. Теперь это ваш ход, и вам нужно выяснить, как сделать эти два модуля доступными для вашей установки Perl.

Вы можете попробовать использовать для этого CPAN, например (sudo может не понадобиться, в зависимости от вашей конфигурации)

 sudo cpan IPC::System::Simple
 sudo cpan String::ShellQuote
person ivg    schedule 17.05.2021
comment
Привет! Я выполнил обе команды, и, похоже, по крайней мере одна из зависимостей исправлена ​​(вы можете увидеть это в Edit), большое спасибо! Я буду продолжать попытки. - person Theo Deep; 17.05.2021
comment
Что ж, вдруг сработало. Я написал еще раз sudo cpan IPC::System::Simple (сейчас вопросов не было) и после этого opam install conf-perl-ipc-system-simple. Сейчас посмотрю, работают ли модули, но вроде хорошо. - person Theo Deep; 17.05.2021
comment
Я не могу запустить модули (т.е. open Quotation не работает, но, похоже, это более сложная загрузка), но в любом случае проблема, которую я публикую здесь, решена (ИЗМЕНИТЬ 2 вопроса). - person Theo Deep; 17.05.2021
comment
Просто добавлю, что если вы выберете local::lib в настройке cpan, как это сделал @TheoDeep, то sudo не понадобится. - person corwin.amber; 08.07.2021