LINUX.ORG.RU

Работа с Cabal

 , ,


0

1

Как сменить текущую версию пакета корректно?

SublimeHaskell требовал одно время не самый свежий hsdev (узнал постфактум), из-за этого у меня была такая последовательность действий:

cabal update
cabal install hsdev
cabal install 'hsdev < 0.1.8.0'

Недавно (пару дней как) SublimeHaskell обновился и теперь требует >= 0.1.8.0 и < 0.1.9.0. Благодаря первой команде у меня уже стоит 0.1.8.2 (2 версии одновременно, но в bin ссылка на старый после переустановки). Как корректно перенаправить ссылку на 0.1.8.2 средствами Cabal и удалить старую версию? Или «Cabal не пакетный менеджер, всё делать руками»? Я понимаю, что руками просто можно переправить ссылку через ln -s и удалить с помощью rmdir. Но это как-то костыльно.

Deleted

Cabal не пакетный менеджер

Exactly. Cabal не занимается управлением bin и удалением старых версий.

anonymous
()

Очень символичное название. Адепты, анально закабаленные майкрософтом страдают от анальной боли.

anonymous
()
Ответ на: комментарий от hateyoufeel

gentoo и оверлей gentoo-haskell

Если не для «поставил и забыл», а для нормальной работы (в том числе с нормальным обновлением), то лучше уж всё-таки Nix.

devsdc ★★
()
Ответ на: комментарий от devsdc

Если не для «поставил и забыл», а для нормальной работы (в том числе с нормальным обновлением), то лучше уж всё-таки Nix.

Зависит от. Пользовался и тем и другим, в итоге остановился на Gentoo для личной/рабочей системы и Stack + stackage-lts в продакшене. Обновляется Gentoo без особых проблем через haskell-updater.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

haskell-updater же не обновляет, а только чинит сломавшееся из-за обновлений. Или я какие-то не те маны курю?

Меня дичайше задолбало, что в процессе обновления мира всё ломается из-за хаскеля где-то на середине. Приходится запускать haskell-updater.

Ну и не забудем про политику «ставить ограничение зависимостей сверху», которая приводит к тому, что какая-нибудь библиотека никак не может обновиться без обновления всех её reverse-зависимостей. У меня почему-то портаж с этой ситуацией крайне хреново справляется.

Да даже если не брать во внимание расчёт зависимостей, пересборка каких-нибудь огромных пакетов из-за обновления мелких библиотек делает меня печалиться.

В общем, поставил рядом с портажем nix и держу там всякий страшный хаскель. То, что nix безболезненно может держать несколько версий одной библиотеки (а значит, и не ломать обновлением все reverse-зависимости), является просто киллерфичей в данном случае.

devsdc ★★
()
Ответ на: комментарий от devsdc

haskell-updater же не обновляет, а только чинит сломавшееся из-за обновлений. Или я какие-то не те маны курю?

haskell-updater просто дёргает emerge. Если есть что обновлять, тот может обновить.

Меня дичайше задолбало, что в процессе обновления мира всё ломается из-за хаскеля где-то на середине. Приходится запускать haskell-updater.

Есть такое. Я обычно делаю --exclude=dev-haskell/*

Ну и не забудем про политику «ставить ограничение зависимостей сверху», которая приводит к тому, что какая-нибудь библиотека никак не может обновиться без обновления всех её reverse-зависимостей. У меня почему-то портаж с этой ситуацией крайне хреново справляется.

С этим справляется hackport при генерации ебилдов, убирая собственно верхние ограничения через sed. Грязный хак, но работает.

Да даже если не брать во внимание расчёт зависимостей, пересборка каких-нибудь огромных пакетов из-за обновления мелких библиотек делает меня печалиться.

В общем-то да, но я обновляю dev-haskell/* всем скопом сразу, поэтому не так критично.

В общем, поставил рядом с портажем nix и держу там всякий страшный хаскель. То, что nix безболезненно может держать несколько версий одной библиотеки (а значит, и не ломать обновлением все reverse-зависимости), является просто киллерфичей в данном случае.

Соглашусь, если есть в этом необходимость. Я в самой системе держу только зависимости для установленных программ типа darcs или pandoc. Библиотеки к рабочим проектам лежат в отдельных песочницах. Nix для такого, как мне кажется, слишком переусложнён.

hateyoufeel ★★★★★
()
Ответ на: комментарий от stevejobs

Читать посты Аллена - себя не уважать.

qnikst ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.