cabal help
显示thers is not“uninstall”选项。
然后卸载cabal安装的软件包的最佳方法是什么?
% cabal update
% cabal install mighttpd2
maytpd2已成功安装。然而ghc-pkg找不到&取消注册:
% ghc-pkg list | grep -i might
% ghc-pkg unregister mighttpd2
ghc-pkg: cannot find package mighttpd2
此致!
>find .cabal | grep -i mighttp
.cabal/share/doc/mighttpd2-2.3.3
.cabal/share/doc/mighttpd2-2.3.3/LICENSE
.cabal/share/mighttpd2-2.3.3
.cabal/share/mighttpd2-2.3.3/sample.conf
.cabal/share/mighttpd2-2.3.3/sample.route
.cabal/packages/hackage.haskell.org/mighttpd2
.cabal/packages/hackage.haskell.org/mighttpd2/2.3.3
.cabal/packages/hackage.haskell.org/mighttpd2/2.3.3/mighttpd2-2.3.3.tar.gz
>ghc-pkg list | grep -i package\.conf
/usr/local/lib/ghc-7.0.3/package.conf.d:
/home/sw2wolf/.ghc/i386-freebsd-7.0.3/package.conf.d:
所以ghc-pkg无法看到“.cabal / packages / hackage.haskell.org”。
答案 0 :(得分:5)
您可能没有将Cabal路径作为GHC路径的一部分。
首先,尝试找出GHC包路径是什么,
ghc-pkg list
# displays stuff like "/home/username/.../package.conf.d"
然后,确保Cabal正在写入的一个是活动的。对我来说,Cabal将包裹添加到
/home/username/.ghc/x86_64-linux-7.0.4/package.conf.d
如果您的系统上没有此类目录,请参阅Cabal写的内容。
strace -f -o trace.txt cabal install mighttpd2
grep "package\.cache" trace.txt
然后将包路径添加到此系统环境变量
export GHC_PACKAGE_PATH=NEWPATH:/usr/local/lib/ghc-7.0.3/package.conf.d
再试一次,如果不起作用,请继续执行第3步
查看该目录并查看是否有像
这样的文件mighthttpd2-version-LONGHASHCODE.conf
如果它在那里,那么你可能需要重新安装
ghc-pkg recache --user
答案 1 :(得分:2)
GHC包系统不用于可执行文件,mighttpd2
包只构建可执行文件。要卸载它,只需删除程序包的cabal文件中列出的两个可执行文件(mighty
和mkindex
)以及两个数据文件(sample.conf
和sample.route
)。您可以通过在~/.cabal/config
中仔细阅读cabal的配置文件来找到这些文件的安装目录。