2015-09-29 3 views
16

Ситуация, я пытаюсь установить Netwire используя Stack. Тем не менее, существует проблема в последней версии 5.0.1, о которой сообщается dhobbs: http://hub.darcs.net/ertes/netwire/issue/13Как установить/использовать локальную версию пакета с помощью Stack?

Поскольку я не знаю, когда проблема будет исправлена, я скачал репо и внес изменения самостоятельно. Однако я не понимаю, как установить такую ​​локально исправленную версию. stack install не устанавливает это в ~/.stack. У кого-нибудь есть идея?

Update

Сейчас я разрабатываю некоторые другие библиотеки с помощью стека. Как сделать другой проект использовать эти библиотеки? Жесткое кодирование относительного пути выглядит невероятно уродливым.

ответ

11

Так у вас есть проект, в котором вы хотите использовать вас локально заплату Netwire версии и в вашем проекте у вас есть stack.yml, в качестве примера:

flags: {} 
packages: 
- '.' 
extra-deps: {} 
resolver: lts-3.7 

У вас также есть зависимость от netwire заявила в своей клике файл.

Для использования вы заплата Netwire в этом проекте ваших вы просто поставить исправленный пакет Netwire в подкаталоге вашего проекта, возможно, называется netwire и обновить stack.yml как таковые:

flags: {} 
packages: 
- '.' 
- netwire 
extra-deps: {} 
resolver: lts-3.7 

Теперь stack build будет строить ваш проект с исправленной версией Netwire.

Вы также можете поместить измененный источник в Интернете (если позволяет лицензии) и относится к источнику с использованием либо тарбол URL

- https://example.com/netwire.tar.gz 

или GIT репозитория и фиксацией ссылки:

- location: 
    git: [email protected]/netwire 
    commit: 6a86ee32e5b869a877151f74064572225e1a0398 

(Для справки: Дополнительная информация: https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps)

+1

Я знаю этот метод. Тем не менее, я хотел бы поместить библиотеку netwire в более удобное место, изолированное от источника. Выполнение того, что вы сказали, заставляет меня чувствовать, что собирать кучу программных средств под/usr и хранить источники там. –

+0

Или скажите, я бы хотел, чтобы я использовал 'stack ghci' в любом месте, я могу просто импортировать' Control.Wire' –

+0

Я не 100%, но я не думаю, что это поддерживаемый прецедент. – adamse

Смежные вопросы