2010-04-25 20 views
30

Paketlerin nasıl oluşturulduğu, nasıl yüklendiği ve Haskell'de kullanıldığıyla ilgili olarak, ghc-pkg ve cabal arasındaki ilişki nedir?ghc-pkg ve cabal arasındaki ilişki nedir?

Rolleri nelerdir? - birini ne zaman kullanırsınız, yoksa her ikisini birden kullanır mısınız?

Bunlar tamamlayıcı araçlar, rekabetçi araçlar veya farklı işler yapan araçlar mı?

cevap

23

Grafiksel, bağımlılıklar şunlardır:

Packages GHC can use 
    | 
Are registered with "ghc-pkg register" 
    | 
And (almost always) built with Cabal 
    | 
With build dependencies resolved by cabal-install 
    | 
From Hackage. 
+0

o ghc-pkt olan kaydedilebilirlik herhangi paket Cabal'a ile inşa edilmiş olması gerektiğini daha sonra doğru mu? –

+3

Hayır, bu doğru değil. Kötü eski günlerde Cabal yoktu ve tüm paketlerimizi marka ile kaydettik. 'Kayıt ol' komut dosyaları bol. "ghc-pkg register" konusuna bakın. –

8

ghc-pkg GHC'nin paket veritabanına doğrudan bir arabirimdir. Cabal, paketler için tutarlı bir dağıtım yapısı ve paketler, sürüm numaraları ve yapı bilgileri arasındaki bağımlılıklar gibi meta verileri belirtmenin bir yolunu sağlayan bir araçtır.

Bir paketi yüklemek için Cabal'ı kullanmak, sizin için ghc ile (diğer şeylerin yanı sıra) kaydeder, ancak bu gerçekten çakışmanın kapsamıdır.

Ayrıca ghc-pkg'ın, (bildiğim kadarıyla) Cabal'ın kurulu paketleri gizlemek gibi bir işlevi olmadığını unutmayın.

İlgili konular