Difference between revisions of "Cabal"

From HaskellWiki
Jump to navigation Jump to search
(→‎Information for package users: Added a link to "An Introduction to Cabal sandboxes")
(7 intermediate revisions by 4 users not shown)
Line 6: Line 6:
 
== Summary ==
 
== Summary ==
 
* Cabal is a package and build system. Cabal is only involved in the creation of packages and the building of their contents. It does not manage packages.
 
* Cabal is a package and build system. Cabal is only involved in the creation of packages and the building of their contents. It does not manage packages.
* cabal-install installs cabal packages. It is distinct from Cabal (the build system). This often confuses new users. Furthermore, cabal-install is not a fully featured package manager. For example, it cannot install non cabal packaged dependencies, it cannot uninstall packages, nor can it automatically upgrade installations.
+
* Cabal-Install installs cabal packages. It is distinct from Cabal (the build system). This often confuses new users. Furthermore, Cabal-Install is not a fully featured package manager. For example, it cannot install non cabal packaged dependencies, it cannot uninstall packages, nor can it automatically upgrade installations.
   
 
== Information for package users ==
 
== Information for package users ==
  +
*[[Cabal/Survival | A short and transient survival guide for Cabal users]]
 
*[[Cabal/How to install a Cabal package | How to install a Cabal package]]
 
*[[Cabal/How to install a Cabal package | How to install a Cabal package]]
  +
*[http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html An Introduction to Cabal sandboxes]
 
*[[Cabal/FAQ|FAQ: Frequently Asked Questions]]
 
*[[Cabal/FAQ|FAQ: Frequently Asked Questions]]
 
*[[Cabal-Install]] - tool that greatly simplifies installation of Cabal packages
 
*[[Cabal-Install]] - tool that greatly simplifies installation of Cabal packages
Line 17: Line 19:
 
* [http://hackage.haskell.org/package/cabal-dev cabal-dev], a tool for managing development builds of Haskell projects. It supports maintaining sandboxed cabal-install repositories, and sandboxed ghc package databases. See [http://www.reddit.com/r/haskell/comments/f3ykj/psa_use_cabaldev_to_solve_dependency_problems/ PSA: Use cabal-dev to solve dependency problems] for an extensive description.
 
* [http://hackage.haskell.org/package/cabal-dev cabal-dev], a tool for managing development builds of Haskell projects. It supports maintaining sandboxed cabal-install repositories, and sandboxed ghc package databases. See [http://www.reddit.com/r/haskell/comments/f3ykj/psa_use_cabaldev_to_solve_dependency_problems/ PSA: Use cabal-dev to solve dependency problems] for an extensive description.
 
* Blog article: [http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager/ Repeat after me: “Cabal is not a Package Manager”]
 
* Blog article: [http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager/ Repeat after me: “Cabal is not a Package Manager”]
  +
* [http://www.mew.org/~kazu/proj/cab/en/ cab], a maintenance command of Haskell cabal packages
   
 
== Information for package developers ==
 
== Information for package developers ==
 
*[[How to write a Haskell program]]
 
*[[How to write a Haskell program]]
  +
*[http://wewantarock.wordpress.com/2010/11/03/building-a-shared-library-in-cabal/ Building a shared library in Cabal]
 
*[[Cabal/Developer-FAQ|FAQ: Frequently Asked Questions of package authors]]
 
*[[Cabal/Developer-FAQ|FAQ: Frequently Asked Questions of package authors]]
  +
*[[Cabal/How to install a Cabal package remotely | How to install a Cabal package remotely]]
 
*[[Upgrading packages]]
 
*[[Upgrading packages]]
 
*[[Package versioning policy]]
 
*[[Package versioning policy]]
Line 30: Line 35:
   
 
[[Category:Tools]]
 
[[Category:Tools]]
  +
[[Category:Cabal]]

Revision as of 20:08, 27 December 2013

The Haskell Cabal:

The Common Architecture for Building Applications and Libraries

http://www.haskell.org/cabal/

Summary

  • Cabal is a package and build system. Cabal is only involved in the creation of packages and the building of their contents. It does not manage packages.
  • Cabal-Install installs cabal packages. It is distinct from Cabal (the build system). This often confuses new users. Furthermore, Cabal-Install is not a fully featured package manager. For example, it cannot install non cabal packaged dependencies, it cannot uninstall packages, nor can it automatically upgrade installations.

Information for package users

Information for package developers