Короткая версия
Я настроил gitit
на использование его плагина «Deprofanizer», но когда я запустил его, он потерпел неудачу, сказав:
Loading plugin 'plugins/Deprofanizer.hs'...
plugins/Deprofanizer.hs:6:1: error:
Could not find module ‘Network.Gitit.Interface’
Use -v to see a list of the files searched for.
|
6 | import Network.Gitit.Interface
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gitit: Error loading plugin: plugins/Deprofanizer.hs
Очевидно, он нашел плагин, но потом не смог скомпилировать.
Как мне это исправить?
Более подробная версия
Я установил gitit
вики согласно инструкции , используя stack install
. Если я просто запускаю gitit
, он работает отлично: он создает каталог static
, инициализирует свою базу данных и запускает службу HTTP на порту 5001, как объявлено.
Но я не могу получить плагины для работы, что, по-видимому, связано исключительно с конфигурацией.
Пример gitit
configuration содержит объяснение того, как настроить плагины:
plugins:
# specifies a list of plugins to load. Plugins may be specified
# either by their path or by their module name. If the plugin name
# starts with Gitit.Plugin., gitit will assume that the plugin is
# an installed module and will not try to find a source file.
# Examples:
# plugins: plugins/DotPlugin.hs, CapitalizeEmphasisPlugin.hs
# plugins: plugins/DotPlugin
# plugins: Gitit.Plugin.InterwikiLinks
В конфигурации по умолчанию нет плагинов. Несколько плагинов поставляются с gitit
, и приведенные здесь инструкции кажутся понятными, поэтому я попытался включить плагин Deprofanizer
, изменив конфигурацию plugins
на:
plugins: plugins/Deprofanizer.hs
в соответствии с предложенным примером. (Deprofanizer
предоставляется с gitit
в качестве примера.)
Это почти работает. Когда я запускаю gitit
, он находит модуль Deprofanizer там, где я ожидаю, и пытается его скомпилировать. Но:
Loading plugin 'plugins/Deprofanizer.hs'...
plugins/Deprofanizer.hs:6:1: error:
Could not find module ‘Network.Gitit.Interface’
Use -v to see a list of the files searched for.
|
6 | import Network.Gitit.Interface
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gitit: Error loading plugin: plugins/Deprofanizer.hs
Модуль Network.Gitit.Interface
действительно является частью дистрибутива Gitit, и я предполагаю, что он скомпилирован в мой исполняемый файл gitit
. Но я не знаю, почему плагин не может импортировать его или как это исправить. Я не могу найти подсказки в руководстве, что это может быть проблемой.
Я нашел код ( в Network.Gitit.Plugins
, ответственный за загрузку и компиляцию модуля плагина:
loadPlugin pluginName = do
logM "gitit" WARNING ("Loading plugin '" ++ pluginName ++ "'...")
runGhc (Just libdir) $ do
...
и дал ему указание записать значение libdir
, которое составляет /home/mjd/.stack/programs/x86_64-linux/ghc-8.6.5/lib/ghc-8.6.5
. Этот каталог существует, но я не знаю, что с ним делать.
Итак, еще раз, вопрос:
Как это исправить?