.. contents:: Table of Contents .. sectnum::
cabal-delete deletes installed directories of the specified package and unregisters it if it has no reverse dependency and it is not installed with ghc. It cannot delete executable packages.
cabal-delete also has some utility commands to show package info, list packages multiple version installed, and list packages with no reverse dependency.
If parent directory of libraryDirs or importDirs contain no other files than to be deleted, then delete the parent directory and haddockHTMLs directories. Otherwise, delete the libraryDirs or importDirs and ignore haddockHTMLs directories.
Delete packages
To delete `package`, type "cabal-delete `package`".
You may need `sudo` to delete directories `root` owns.
If the package has no reverse dependency, message like the following is
displayed::
$ cabal-delete ghc-paths
The following directories will be processed.
D: Delete, N: NotFound, I: Ignore, A: Abort
[D] /usr/local/ghc/pkg/lib/ghc-paths-0.1.0.8/ghc-7.0.4
[D] /usr/local/ghc/pkg/share/doc/ghc-paths-0.1.0.8
Do you want to delete ghc-paths-0.1.0.8 ? [Y]es, [N]o, [A]ll:
where the mark means;
- ``[D]`` means it will be deleted if '`Y`' or just enter key is pressed.
- ``[N]`` means it is found in package.conf (package.cache), but not exist.
- ``[I]`` means it does not contain package name.
So it may be common directory, will be ignored.
- ``[A]`` means it is installed under the directory ghc installed.
So delete process will be aborted.
If it has reverse dependencies, message like the following is displayed::
$ cabal-delete parsec-2.1.0.1
The follwoing packages depend on parsec-2.1.0.1
vty-4.3.0.0
regex-tdfa-1.1.2
salvia-protocol-1.0.1
If `-R` option is specified, dependent packages will be delete recursively.
If `-n` option is specified, cabal-delete will not perform actual operation
(dry-run mode).
Show package information
To show package
's information, type "cabal-delete -i package
".
This shows name, description, dependencies and reverse dependencies as follows::
$ cabal-delete -i failure
Name: failure-0.1.1
Description: A simple type class for success/failure computations.
Depends: base-4.5.1.0 transformers-0.2.2.0
LibraryDirs: /usr/local/ghc/pkg/lib/failure-0.1.1/ghc-7.4.2
ImportDirs: /usr/local/ghc/pkg/lib/failure-0.1.1/ghc-7.4.2
HaddockDirs: /usr/local/ghc/pkg/share/doc/failure-0.1.1/html
Name: failure-0.2.0.1
Description: A simple type class for success/failure computations.
Depends: base-4.5.1.0 transformers-0.3.0.0
ReverseDepends: hamlet-1.1.1 http-conduit-1.6.1.2 xml-conduit-1.0.3.1
yesod-core-1.1.3
LibraryDirs: /usr/local/ghc/pkg/lib/failure-0.2.0.1/ghc-7.4.2
ImportDirs: /usr/local/ghc/pkg/lib/failure-0.2.0.1/ghc-7.4.2
HaddockDirs: /usr/local/ghc/pkg/share/doc/failure-0.2.0.1/html
Show packages that have multiple versions
To show packages with multiple versions installed,
type "cabal-delete -l"::
$ cabal-delete -l
The following packages have multiple versions.
base : 3.0.3.2 4.2.0.1
control-monad-failure : 0.6.1 0.7.0
data-accessor : 0.2.1.2 0.2.1.3
data-accessor-template : 0.2.1.3 0.2.1.4
dyre : 0.8.2 0.8.3
extensible-exceptions : 0.1.1.1 0.1.1.2
failure : 0.0.0.3 0.1.0
...
To show packages with multiple minor versions installed,
type "cabal-delete -m".
`i.e.` Packages with same major version and different minor versions
installed::
$ cabal-delete -m
The following packages have multiple minor versions.
data-accessor : 0.2.1.2 0.2.1.3
data-accessor-template : 0.2.1.3 0.2.1.4
dyre : 0.8.2 0.8.3
extensible-exceptions : 0.1.1.1 0.1.1.2
...
Show packages that have no reverse dependency
To show packages that have no reverse dependency, type "cabal-delete -r"::
$ cabal-delete -r
The following packages have no reverse dependency.
BlazeHtml-0.1
Imlib-0.1.2
control-monad-failure-0.6.1
control-monad-failure-0.7.0
criterion-0.5.0.0
data-accessor-template-0.2.1.4
dph-par-0.4.0
dph-seq-0.4.0
dyre-0.8.3
extensible-exceptions-0.1.1.1
...
The following options are available::
usage: cabal-delete [option] [package...]
-R --recursive delete packages recuresively
-a --all process both user and global packages
-g --global process global packages instead of local packages
-h --help show this help
-i --info show package info
-l --multiple-versions list packages with multiple versions
-m --multiple-minors list packages with multiple minor versions
-r --reverse-depends list packages with no reverse dependency
-n --dry-run check what will happen without actual action
-v --version show version number
--all
option is specified.Refactoring...
Do not perform recursive delete if any of dependent packages is [A]
case.
-y
option not to query user's answer (non-interactive mode).