modülünü bulamıyor. (X) Ubuntu 15.10 üzerinde Haskell sürüm 7.8.4 kullanıyorum, Cabal-Install 1.18 her ikisi de apt
aracılığıyla yüklenir. Bu makinede Haskell ile ilgili herhangi bir şey kurmaya çalışmadım. Bir cabal sandbox kurdum, sadece ghc
'un onu almayıp görmediğini keşfetmek için bir modül taktım ve kurdum. ghc -v
, karşılıklı olarak birbirini gölgeleyen kabal kütüphanesinin iki versiyonuna sahip olduğumu gösteriyor. Bu nasıl çalışıyor?GHC, cabal sandbox
boş bir dizine /tmp/haskell-example
ile başlıyorum sonra bir cabal sandbox init
yapmak. Bir programda Data.Natural
modülünü kullanmak istiyorum çünkü
$ cabal sandbox init
Writing a default package environment file to
/tmp/haskell-example/cabal.sandbox.config
Creating a new sandbox at /tmp/haskell-example/.cabal-sandbox
sonra
natural-numbers
yükleyin. Bu işlem başarılı.
$ cabal install natural-numbers
Resolving dependencies...
Notice: installing into a sandbox located at
/tmp/haskell-example/.cabal-sandbox
Configuring natural-numbers-0.1.2.0...
Building natural-numbers-0.1.2.0...
Installed natural-numbers-0.1.2.0
Ben Data.Natural
modül gerçekten cabal sanal alana kurulduğunu doğrulayabilir.
$ ls /tmp/haskell-example/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.4/natural-numbers-0.1.2.0
Data
libHSnatural-numbers-0.1.2.0.a
libHSnatural-numbers-0.1.2.0-ghc7.8.4.so
$ ls /tmp/haskell-example/.cabal-sandbox/lib/x86_64-linux-ghc-7.8.4/natural-numbers-0.1.2.0/Data
Natural.dyn_hi
Natural.hi
sonra
Data.Natural
ithal ama bunu kullanmayan bir basit
Main.hs
dosyası oluşturun. Ben
ghc Main.hs
çalıştığınızda
module Main where
import Data.Natural
main = putStrLn "Hello World"
aşağıdaki bakın: my cabal gölgeleme sırayla bir sonraki cabal, gölgesinde oluyor sanki etkin ayrıntılı bayrak ile
$ ghc Main.hs
Main.hs:3:8:
Could not find module ‘Data.Natural’
Use -v to see a list of the files searched for.
, öyle görünüyor daha önceki kabalık. Bu neden oluyor?
$ ghc -v Main.hs
Glasgow Haskell Compiler, Version 7.8.4, stage 2 booted by GHC version 7.8.4
Using binary package database: /usr/lib/ghc/package.conf.d/package.cache
hiding package Cabal-1.18.1.5 to avoid conflict with later version Cabal-1.22.1.1
wired-in package ghc-prim mapped to ghc-prim-0.3.1.0-ec14d2f6075975a2ce9112eae431c8e1
wired-in package integer-gmp mapped to integer-gmp-0.5.1.0-de4898ebdc5ab81cedce89121ae9ac84
wired-in package base mapped to base-4.7.0.2-5ef1e7e809bc3b18d74efc783356e209
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-2.9.0.0-c1976a420ad8b9b589eee08844c59ba2
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags:
hiding package Cabal-1.18.1.5 to avoid conflict with later version Cabal-1.22.1.1
wired-in package ghc-prim mapped to ghc-prim-0.3.1.0-ec14d2f6075975a2ce9112eae431c8e1
wired-in package integer-gmp mapped to integer-gmp-0.5.1.0-de4898ebdc5ab81cedce89121ae9ac84
wired-in package base mapped to base-4.7.0.2-5ef1e7e809bc3b18d74efc783356e209
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-2.9.0.0-c1976a420ad8b9b589eee08844c59ba2
wired-in package dph-seq not found.
wired-in package dph-par not found.
*** Chasing dependencies:
Chasing modules from: *Main.hs
Main.hs:3:8:
Could not find module ‘Data.Natural’
Locations searched:
Data/Natural.hs
Data/Natural.lhs
*** Deleting temp files:
Deleting:
*** Deleting temp dirs:
Deleting:
.cabal dosyanızı güncellediniz mi? – Sigrlami
@Sigrlami Korkarım Anlamadım. '$ HOME/.cabal' ve '/ tmp/haskell-example/.cabal-sandbox' adlı bir dizim var, ancak' .cabal' dosyası yok. Güncellemek için ne yapmam gerekir? –
Projeniz içinde 'cabal init 'komutunu kullandığınızda, gerekli tüm bağımlılıkları açıklayan foo.cabal dosyası oluşturulur ve bunları manuel olarak eklemeniz gerekir. Proje adınızı 'foo' kabul ederek.Örneğin, https://github.com/sigrlami/pollock/blob/master/pollock.cabal – Sigrlami