When installing a package with cabal-install, it will also indirectly install all the dependencies. Given a certain package in my .cabal/packages folder that I didn't directly install, is there a way to find what other package(s) it was a dependency of?
Is there a way to find why cabal installed a certain package?
564 views Asked by hugomg At
2
There are 2 answers
0
Dan
On
I found cabal-db to be helpful. For example, you can run
cabal-db revdeps semigroupoids
and it will tell you
zippers: semigroupoids (>=4 && <5)
wl-pprint-extras: semigroupoids (>=3 && <5)
vector-instances: semigroupoids (>=3)
validation: semigroupoids (>=4.0)
transformers-abort: semigroupoids (>=1.2)
these: semigroupoids (>=1.0 && <4.1)
etc...
Related Questions in HASKELL
- Typeclass projections as inheritance
- How to generate all possible matrices given a number n in Haskell
- Is there a way to get `cabal` to detect changes to non-Haskell source files?
- How to have fixed options using Option.Applicative in haskell?
- How can I create a thread in Haskell that will restart if it gets killed due to any reason?
- Automatic Jacobian matrix in Haskell
- Haskell writing to named pipe unexpectedly fails with `openFile: does not exist (No such device or address)`
- Why does Enum require to implement toEnum and fromEnum, if that's not enough for types larger than Int?
- Non-exhaustive patterns in function compress
- How to get terms names of GADT in Template Haskell?
- Implementing eval() function with Happy parser generator
- How to count the occurences of every element in a list in Haskell fast?
- In Haskell, what does `Con Int` mean?
- Extract a Maybe from a heterogeneous collection
- Haskell, Stack, importing module shows error "Module not found"
Related Questions in GHC
- How to use GHC’s `ReadPrec`?
- Homebrew error when installing GHC: linker does not have option `-no_fixup_chains`
- Why does Cabal, unlike GHC, not automatically enable GeneralizedNewtypeDeriving if I explicitly enabled DerivingStrategies?
- Understanding and Optimizing Generational Garbage Collection in Haskell
- Run cleanup function in multiple Haskell child threads when POSIX Signal sent (SIGTERM etc)
- libffi.so link issue for Haskell compiled executable on Linux platforms
- Admissble type role overrides
- How to change the order of type application parameters for a constructor
- Why does Data.Dynamic contain a witness instead of a typeclass constraint?
- cabal link error undefined symbol on windows
- Haskell speed issue where executing both parts of a program takes significantly longer than either part alone
- Haskell's polymorphic functions in different GHC version
- Haskell - Cabal linker command failed when installing Text.Regex.Posix
- Working around conflict between `c-source` name and GHC RTS name
- GHC API equivalent of adding a C/C++ file/object to the compilation
Related Questions in CABAL
- Is there a way to get `cabal` to detect changes to non-Haskell source files?
- Problem while configuring CodeWorld through cabal run
- Is there a fundamental reason why only one library can be exposed from a package?
- How to avoid listing A as build dependency for internal library/executable E just because E depends on internal library L which depends on A?
- What is the most practical way to express a dependency on a library for which we have a local git repository with some changes?
- cabal test is inconsistent with its QuickCheck log
- Why does Cabal, unlike GHC, not automatically enable GeneralizedNewtypeDeriving if I explicitly enabled DerivingStrategies?
- How do I get cabal to pull the latest from a repository specified in source-repository-package?
- Inserting a sparse vector into a sparse matrix
- nixos 23.11 cabal install mysql-simple problem - "Missing (or bad) C libraries"
- Create a complete hoogle database for a cabal project with all dependencies included
- Haskell profiling options result in build error of "Cannot load -prof objects when GHC is built with -dynamic"
- How do I tell HLS to use hls-class-plugin?
- How to manage XMonad (and xmobar and anything else related to it) via GHCup+cabal?
- Aquamacs does not work with with Agda Mode
Related Questions in CABAL-INSTALL
- Is there a single command to build and copy a cabal executable component to specified destination?
- Installing Z3 binding with haskell on mac
- I am having an issue with cabal install and cannot seem to install pretty-simple
- Unable to install magic-1.1 for iHaskell
- How to uninstall a hackage built by myself with cabal?
- Problem installing haskell profiling libraries with cabal
- Leave free access to internal intermediary functions in Haskell library?
- Entry point for test suite with multiple files in Cabal project?
- cabal fails to find a library built and installed with cabal install --lib (linux)
- How to actually use already-installed versions of a package, or find out why it's not possible?
- Cabal install error with conflicting constraints
- Error with cabal install while building lib
- Why can't I cabal install template-haskell-2.17.0.0?
- How do I stop GHC from recompiling modules when nothing has changed?
- Cabal - Installing beam-migrate
Related Questions in GHC-PKG
- Upgrading a package without breaking ghc
- ghc-pkg: Couldn't open database for modification: hLock: invalid argument
- How to work together with cabal-3 and ghc (ghc-pkg, too)?
- How to list files installed by a Haskell cabal package?
- Using ghc-pkg list and cabal list --installed give different lists
- Access GHC package database in test and benchmark suite
- How does ghc resolve paths for libraries ?
- Missing ghc-mod packages in stack project
- Someone explain Haskell package management system
- Building haskell platform 2014.2.0.0 on debian wheezy using locally-built ghc
- Is there a simple way to load extra packages to ghci when invoked via cabal repl?
- Haskell environment hosed post reinstall
- Is there a way to find why cabal installed a certain package?
- Cannot locate cabal installed packages
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
I found this command somewhere (can't remember where now) and use it regularly to produce a dependency graph of my installed packages:
Note that it's actually
~/.ghcwhich contains the installed package information, rather than~/.cabal.You can also use:
which will print a list of packages which would break if you uninstalled this package, which is effectively what you are looking for:
Update
Using
dot -Tsvg > pkgs.svgin the above command also allows you to use text searches (if you open the file in a browser, for example).Also, the cab utility is very useful for showing dependencies and reverse dependencies, amongst other things.
For stack users
stack dot --externalcan be used from your project directory in place of the aboveghc-pkg dot.