2015-07-10 15 views
10

Kabal öğrenmeye çalışıyorum ve kendi küçük projelerimi test ettim, şimdi onları temizlemek istiyorum. Ben sandbox olmadan çalışıyorum eğerKabal tarafından yüklenen paketleri nasıl tamamlayacaksınız?

Temelde, benim iş akışı:

  1. koşmak cabal init
  2. düzenlemek src/Mylib.hs ve sonra mylibname.cabal dosya
  3. koşmak cabal build
  4. çalıştırmak cabal repl düzenlemek ve test etmek benim kodu
  5. run cabal install

Şimdi, benim kendi projesini bakın:

  1. ~/.ghc/package.conf.d
benim diğer haskell kaynak kodunda import Mylib yazabilir

kayıtlı ~/.cabal/lib/x86-64-linux-ghc-7.10.1

  • içine monte, bu yüzden paketi düşünüyorum başarıyla kuruldu.

    Paketin kendisi anlamsız bir deneme kodu olduğu için paketi kaldırmak istiyorum.

    hayır "cabal kaldırma" komutu vardır:

    ben diyor this makale, okuyun. Yalnızca ghc-pkt olan paketleri kaydını yapabilirsiniz:

    ghc-pkg unregister 
    

    yüzden Şimdi

    ghc-pkg unregister mylibname 
    

    çalıştırmak, bir derlenmiş kütüphane hala var, paket Ancak ~/ghc/package.conf.d kayıt dışı olduğu görülmektedir ~/.cabal/lib/x86-64-linux-ghc-7.10.1.

    Peki, projemi nasıl tamamlayabilirim? rm -rf kütüphanesi ~/.cabal?

  • +1

    ben Cabal'ın yakında bir kaldırma komutunu aldığını düşünmeyin. Ancak, büyük bir etkiye sanal alanlarını kullanır ve neredeyse tek tek paketler silmek için ihtiyacı ortadan 'yığın' yerine komplo kullanarak deneyebilirsiniz. Deneysel ve projeye özel paketler her zaman yerel proje dizininize yüklenir ve tüm yerel paketleri temizlemek için 'yığın temizliğini' çalıştırabilirsiniz. –

    cevap

    2

    Dosyaları kendiniz paketler dizininden silebilirsiniz. Ancak, bunun için herhangi bir emir verilmemesinin nedeni, genel olarak başka bir yerde kendilerine karşı bir bağlantının bulunmadığına dair bir garantinin olmamasıdır ve bu türden silme işlemleri, kırılmalara neden olabilir. Yani, gerçekten bunu isterseniz, sizin için silme işlemini yapan ve yapan bir araç da var.

    http://hackage.haskell.org/package/cabal-uninstall

    Ve ayrıca paketleri hiçbir ters Deps var anlamaya olanak biraz daha işlevselliğe sahip bir araç vardır, bu yüzden en azından başka paketleri molası:

    https://github.com/iquiw/cabal-delete

    İlgili konular