Ist es möglich, mehr als ein ghc zu installieren und den Binärnamen jeder Installation zu ändern?

8

Angenommen, ich möchte verschiedene Versionen von GHC verwenden, die jeweils einen anderen binären Namen haben.

Frage 1. Kann ich ./configure --prefix = ghc-some-version-dir für jede der Installationen verwenden und symbolische Links erstellen ghc-7.4.1 , ghc-7.6.2 , ghc-head ohne Probleme?

Das heißt, nach der Installation und Erstellung von Binärdateien aus Quellcode. Die Verwendung virtueller Umgebungen wäre weiterhin erforderlich, um Projekte und ihre Abhängigkeiten zu erstellen.

Frage 2. Was verhindert, dass wir ghc zu Hackage mit einem Paketnamen hochladen ghc-version mit einem binären Namen, der von seiner Version abhängt? z.B. Man könnte cabal install ghc-version-7.6.2 haben und eine binäre ghc-7.6.2 in ~ / .cabal / bin

bekommen     
Carlos López-Camey 27.03.2013, 22:12
quelle

2 Antworten

11

Sie müssen nichts Besonderes tun. GHC installiert bereits alle ausführbaren Dateien mit versionierten Namen und Links vom nicht versionierten Namen zur zuletzt installierten Version, z. ein Link von "ghc" zu "ghc-7.6.1" oder was auch immer du zuletzt installiert hast. Wenn Sie aus dem Repository erstellen, ist die Versionsnummer ziemlich lang und enthält das Datum, an dem Sie sie erstellt haben.

Ich weiß nicht genau, warum GHC nicht auf Hackage ist, aber ich nehme an, dass das Build-System sehr kompliziert ist, und dass es verschlingen würde (und die Cabalization beizubehalten) wäre mehr Arbeit, als es wert ist.

    
Daniel Wagner 27.03.2013, 23:31
quelle
3

Es gibt mehrere Lösungen

  • Benutze einfach chroot
  • Verwenden Sie einen Paket-Manager, der mehrere Versionen der gleichen Bibliothek / Software wie nix behandelt
  • Es gibt Skripte, die dafür geschrieben wurden, wie Ссылка
  • Verwenden Sie gnu stow wie im Blogeintrag von Brent Yorgey beschrieben.
  • Ben Millwood hat eine Lösung, bei der er nur die -w -Flagge verwendet, lesen Sie seinen Kommentar unter: Ссылка
Davorak 27.03.2013 23:34
quelle

Tags und Links