Как получить дистрибутив.Client.IndexUtils, установленный кабалой

Я пытался добавить cabal-install и Cabal-install в файл .cabal, но.

Отсутствуют как минимум следующие зависимости: Cabal-install -any

Почему нет cabal-install?

Итак, как я могу получить Distribution.Client.IndexUtils, кроме встраивания исходников установки клики?

и Distribution.Client.IndexUtils тоже.

Или, может быть, я могу заменить его чем-то?


person cnd    schedule 29.06.2012    source источник


Ответы (1)


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

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

Что касается сообщения об ошибке: если пакет устанавливает только исполняемый файл, он не регистрируется как библиотека в GHC. Поэтому, если вы укажете cabal-install как зависимость другого пакета, вы получите сообщение об ошибке, что cabal-install отсутствует (как библиотека).

person kosmikus    schedule 29.06.2012
comment
Ясно, значит, вы предлагаете оставить интригу встроенной в проект? или создайте хакерскую обертку для бинарной cabal-install... - person cnd; 29.06.2012
comment
Я думаю, что это действительно зависит от того, что вы собираетесь делать. - person kosmikus; 29.06.2012