2012-12-28 89 views
2

我很茫然。我使用OS X 10.8.2。无法找到cabal安装包

我能找到的唯一参考的是:

  • 4.1我刚安装的软件包,但现在的包没有found`

  • 出现这种情况,当你安装一个全球性的软件包,以及之前的
    软件包已在本地安装。请注意,默认情况下cabal-install在本地默认安装
    ,并且“runhaskell设置”命令默认安装
    全局。

阴谋被默认设置为本地安装。我没有改变这一点。 Haskell在全球安装。

$ cabal install pointfree 
Resolving dependencies... 
Configuring pointfree-1.0.4.3... 
Building pointfree-1.0.4.3... 
Preprocessing executable 'pointfree' for pointfree-1.0.4.3... 
[1 of 7] Compiling Plugin.Pl.Common (Plugin/Pl/Common.hs, dist/build/pointfree/pointfree-tmp/Plugin/Pl/Common.o) 
[2 of 7] Compiling Plugin.Pl.Parser (Plugin/Pl/Parser.hs, dist/build/pointfree/pointfree-tmp/Plugin/Pl/Parser.o) 
[3 of 7] Compiling Plugin.Pl.PrettyPrinter (Plugin/Pl/PrettyPrinter.hs, dist/build/pointfree/pointfree-tmp/Plugin/Pl/PrettyPrinter.o) 
[4 of 7] Compiling Plugin.Pl.Transform (Plugin/Pl/Transform.hs, dist/build/pointfree/pointfree-tmp/Plugin/Pl/Transform.o) 
[5 of 7] Compiling Plugin.Pl.Rules (Plugin/Pl/Rules.hs, dist/build/pointfree/pointfree-tmp/Plugin/Pl/Rules.o) 
[6 of 7] Compiling Plugin.Pl.Optimize (Plugin/Pl/Optimize.hs, dist/build/pointfree/pointfree-tmp/Plugin/Pl/Optimize.o) 
[7 of 7] Compiling Main    (Main.hs, dist/build/pointfree/pointfree-tmp/Main.o) 
Linking dist/build/pointfree/pointfree ... 
Warning: No documentation was generated as this package does not contain a 
library. Perhaps you want to use the --executables flag. 
Installing executable(s) in 
/Users/beoliver/Library/Haskell/ghc-7.4.2/lib/pointfree-1.0.4.3/bin 
Installed pointfree-1.0.4.3 
Updating documentation index /Users/beoliver/Library/Haskell/doc/index.html 

$ cat ~/.bash_profile 
export PATH="$HOME/Library/Haskell/bin:$PATH" 


$ ls -l ~/Library/Haskell/bin/ 
total 24 
lrwxr-xr-x 1 beoliver staff 49 Dec 28 16:06 cabal -> ../ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal 
lrwxr-xr-x 1 beoliver staff 48 Dec 28 19:52 pointfree -> ../ghc-7.4.2/lib/pointfree-1.0.4.3/bin/pointfree 
-rw-r--r-- 1 beoliver staff 66 Dec 28 19:53 x 

的X是奇数...

$ cat ~/Library/Haskell/bin/x 
(line 1, column 5): 
unexpected "+" 
expecting space or simple term 

我检查ghc-pkg list但它不存在。所以看看它是否与user包。

$ ls ~/Library/Haskell/ghc-7.4.2/lib/ 
Cabal-1.16.0.3  cabal-install-1.16.0.2 pointfree-1.0.4.3 

$ file pointfree-1.0.4.3/bin/pointfree 
pointfree-1.0.4.3/bin/pointfree: Mach-O 64-bit executable x86_64 

$ ghc-pkg list --user 
/Users/beoliver/.ghc/x86_64-darwin-7.4.2/package.conf.d 
    Cabal-1.16.0.3 
$ cabal --version 
cabal-install version 1.16.0.2 
using version 1.16.0.3 of the Cabal library 

我是否在此处丢失了一面旗帜?我还需要建立它吗?

$ ghc-pkg check 
Warning: haddock-interfaces: /Library/Haskell/ghc-7.4.2/lib/haskell-platform-2012.4.0.0/doc/html/haskell-platform.haddock doesn't exist or isn't a file 
Warning: haddock-html: /Library/Haskell/ghc-7.4.2/lib/haskell-platform-2012.4.0.0/doc/html doesn't exist or isn't a directory 
Warning: haddock-interfaces: /Library/Haskell/ghc-7.4.2/lib/GLUT-2.1.2.1/doc/html/GLUT.haddock doesn't exist or isn't a file 

回答

2

我检查ghc-pkg list但它不存在。

ghc-pkg只知道和关心已安装的库。 pointfree是一个不带库的可执行文件,因此ghc-pkg不知道它。

由于$HOME/Library/Haskell/bin在你PATH,并且可执行被链接到那里,你可以简单地通过命令行

$ pointfree "\f x y -> f y x" 
flip 

(或类似的东西运行它,它是一个很长的时间,因为我玩pointfree)。

的x是奇...

这看起来像从parsec解析错误消息。不过,我不知道可能将哪些内容写入该文件。

$ ghc-pkg check 
Warning: haddock-interfaces: /Library/Haskell/ghc-7.4.2/lib/haskell-platform-2012.4.0.0/doc/html/haskell-platform.haddock doesn't exist or isn't a file 
Warning: haddock-html: /Library/Haskell/ghc-7.4.2/lib/haskell-platform-2012.4.0.0/doc/html doesn't exist or isn't a directory 
Warning: haddock-interfaces: /Library/Haskell/ghc-7.4.2/lib/GLUT-2.1.2.1/doc/html/GLUT.haddock doesn't exist or isn't a file 

东西似乎在践踏你的鳕鱼,或者从一开始就没有正确安装。 可能表示一个实际问题,但如果不需要本地文档,则可以忽略它。

+0

+1。我曾试过$ pointfree/x ...但没想到把它放在“引号”中!好东西!谢谢。我将继续并删除随机文件。 – beoliver

0

我在~/.cabal/bin/找到了我的cabal软件包二进制文件。