Как найти установленные обратные зависимости пакета в кабале

Мне нужно установить новейший базовый пакет, но Кабал не позволяет мне это сделать

cabal install base --reinstall
Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: base (user goal)
rejecting: base-4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1,
4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2,
4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0 (only already installed instances can be
used)
rejecting: base-3.0.3.2 (conflict: base => base>=4.0 && <4.3)
rejecting: base-3.0.3.1 (conflict: base => base>=4.0 && <4.2)
Dependency tree exhaustively searched.

Поэтому я думаю, что когда я отменяю регистрацию зависимостей, которые удерживают этот пакет в старой версии, я могу это сделать.

ghc-pkg unregister some_annoying_package

Но как я могу найти эти пакеты. я нашел только

cabal-db revdeps base

который дает мне все зависимости от взлома, а не только установленный.


person user1698641    schedule 03.02.2016    source источник
comment
Вы не можете переустановить base с помощью клики. Если вам нужно обновить base, вы должны обновить версию вашего компилятора. В общем, если вы сделаете ghc-pkg unregister <pkg>, он сначала сообщит вам, что будет нарушено этим (и, следовательно, зависимости, которые вам нужно отменить, чтобы отменить регистрацию <pkg>), но в данном случае это неприменимо.   -  person user2407038    schedule 03.02.2016
comment
Спасибо, @user2407038, вы спасли мой день! Я переустановил ghc, и базовый пакет обновлен!   -  person user1698641    schedule 03.02.2016
comment
Кроме того, обратные зависимости не мешают вам установить новую версию пакета. Несколько установок одного и того же пакета (с разными номерами версий) могут спокойно сосуществовать друг с другом в базе данных пакетов GHC. (Современные GHC могут даже поддерживать несколько установок одной и той же версии одной и той же библиотеки с разными деревьями зависимостей, хотя официально Кабала еще не расширила поддержку этой функции.)   -  person Daniel Wagner    schedule 04.02.2016
comment
@DanielWagner, мир Haskell ждет надлежащей поддержки этой функции, затаив дыхание, сидя на краю наших мест. Это будет великий день. Конечно, по-прежнему придется иметь дело с отсутствием первоклассных, параметризованных модулей, сиротскими экземплярами, пороками при перекрывании и закрытии семейств типов и т.д.   -  person dfeuer    schedule 04.02.2016
comment
@ user2407038, поскольку ваш комментарий решил проблему, вы должны отправить его как ответ.   -  person sclv    schedule 25.02.2016
comment
@user2407038 user2407038 Мне понравился ваш комментарий, но я не могу отправить его как ответ, поэтому я просто опубликовал ответ сам   -  person user1698641    schedule 27.02.2016


Ответы (1)


Обновление компилятора обновило базовый пакет. Как объяснил пользователь 2407038:

Вы не можете переустановить базу с помощью Cabal. Если вам нужно обновить базу, вы должны обновить версию вашего компилятора. В общем, если вы выполните ghc-pkg unregister, он сначала сообщит вам, что будет нарушено этим (и, следовательно, зависимости, которые вам нужно отменить, чтобы отменить регистрацию), но в данном случае это неприменимо.

person user1698641    schedule 27.02.2016