As I know cabal is a program to manage installation of packages like FreeBSD's pkg_add.
But there is another tool called ghc-pkg. I don't know why there are two different programs. What's the role of each of them and how are they related?
How are `ghc-pkg` and `cabal` programs related? (Haskell)
1.3k Views Asked by eonil At
2
There are 2 best solutions below
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 RELATIONSHIP
- Erwin API question adding relationships to model
- Laravel Relationship Using An OR Condition on the joining field
- Displaying country and capital names instead of IDs on Laravel order page
- Several relationships in one model in Laravel
- How to map many-to-one relationship?
- Laravel 11 Staudenmeir BelongsToThrough Undefined Relationship
- Directus Relationship problems on update or create entities
- Displaying and hiding links based on access permissions
- uml class diagram for boxing match
- How to eager load both forward and backward relationships in SQLAchemy one-to-many relation
- I have a basic ms access question about a relationship between 3 tables
- drizzle: db.query throwing undefined is not an object (evaluating 'relation.referencedTable')
- How to avoid cyclic relationships in EF Core 8
- EF Core 8 : getting grand children from grandparent
- Power BI - how to deal with a limited relationship when creating a measure?
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 ROLE
- Bot asks user what role they wish to join, bot adds them to role based on the reply
- MariaDB: Executing stored procedure, Select denied, privilege via role
- How can I get records created_by user with role
- WooCommerce: filter orders by role
- Can't give service account permissions to apply an existing role "Error from server (Forbidden) ... attempt to grant extra privileges"
- How to create multiple roles in a single YAML file
- How to create a role to ServiceAccount with context
- set up different roles for a user in group versus specific project
- how to get the currently logged in role symfony?
- Display role name on my_account page WooCommerce
- Service account - access through API
- WSO2 APIM How to limit user to execute only in sandbox
- Symfony - Setting new user Role
- Has_many Join table with a belongs to for admin purposes
- discord.js - Has role give permission
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)
Popular # Hahtags
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?
Cabal is a building and packaging library for Haskell, kind of "Haskell autotools". It reads
.cabalfiles and Haskell packages usually have a fileSetup.hswhich uses Cabal to build the package. Then there's alsocabalcommand provided by the cabal-install package. It provides commands for runningSetup.hsscript and some package management functions, like installing packages directly from Hackage. You should read this blogpost by Ivan Miljenovic which explains the role of Cabal, cabal-install and Hackage quite well.ghc-pkgis a lower-level tool for poking GHC's package database. Cabal is intended to work with every Haskell compiler, whereas ghc-pkg is obviously specific to GHC. You can't use ghc-pkg to build anything, you can just register packages you've built otherwise.