Можно ли обеспечить установку библиотек профилирования при установке GHC 7.8?

Я собираюсь установить GHC на свежую копию Ubuntu, и мне интересно: Как я могу убедиться, что библиотеки профилирования установлены для основных библиотек (например, text, unordered-containers)?

Мне известно об изменении параметра профилирования в файле .config cabal, но я понимаю, что это гарантирует установку библиотек профилирования только для тех пакетов, которые я устанавливаю ПОСЛЕ настройки cabal (см. текст, выделенный курсивом, в обновлении ниже).

(Прошлой ночью я непреднамеренно взорвал свой Ubuntu vbox в результате попытки задним числом установить библиотеки профилирования для установленных пакетов GHC. Это привело к тому, что существующие пакеты не работали, что привело к попытке удалить GHC, что привело к... KABOOM !)

ОБНОВЛЕНИЕ: я установил GHC и сейчас нахожусь в том месте, где собираюсь установить cabal. Я подтвердил свое подозрение, что столкнулся с дилеммой «курица и яйцо»: Чтобы получить исходный файл конфигурации клики (в котором я могу установить параметр профилирования как True), мне нужно установить кабалу. Однако установка cabal приводит к установке основных пакетов (например, text, unordered-containers) ДО того, как я смогу внести изменения в конфигурационный файл Cabal.

РЕШЕНО: По предложению Даниэля Вагнера (спасибо!), я внес пару изменений в файл сценария bootstrap.sh (у меня, к сожалению, не было моего старого клика, иначе я бы последовал его другому предположение). В качестве справки для будущих читателей, начало моего файла bootstrap.sh выглядело так (после изменений):

#VERBOSE
DEFAULT_CONFIGURE_OPTS="--enable-library-profiling --enable-shared"
EXTRA_CONFIGURE_OPTS=${EXTRA_CONFIGURE_OPTS-$DEFAULT_CONFIGURE_OPTS}
#EXTRA_CONFIGURE_OPTS
#EXTRA_BUILD_OPTS
#EXTRA_INSTALL_OPTS

person iceman    schedule 17.12.2014    source источник


Ответы (1)


Предпочтительным решением является установка cabal-install через менеджер пакетов. Если у вас есть старая версия cabal-install в вашем менеджере пакетов, вы можете использовать старую версию для установки новой версии с конфигурацией или даже указать профилирование непосредственно в командной строке через cabal install cabal-install --enable-library-profiling.

Альтернативное решение, если вы планируете установить cabal-install с помощью его сценария bootstrap.sh, состоит в том, чтобы использовать переменные среды, которые он предоставляет для конфигурации. Их четыре, обозначенных в верхней части bootstrap.sh; соответствующий - EXTRA_CONFIGURE_OPTS, содержимое которого передается на шаг configure команды Setup каждого пакета. Так что что-то вроде этого должно помочь (хотя я его не проверял):

EXTRA_CONFIGURE_OPTS=--enable-library-profiling ./bootstrap.sh
person Daniel Wagner    schedule 18.12.2014