diff --git a/guide-de.md b/guide-de.md index 60bacee..59f5d45 100644 --- a/guide-de.md +++ b/guide-de.md @@ -38,3 +38,177 @@ Rassismus, Sexismus, Homophobie, Transphobie und andere Arten von Vorurteilen si --- Richtlinien aus [the Hacker School manual](https://www.hackerschool.com/manual). Danke für die Veröffentlichung Hacker School. + +# What are Haskell, GHC, und Cabal? + +Haskell ist eine Programmiersprache wie in den Berichten(?) festgelegt, mit dem letzten von 2010. +Der Bericht(?) ist [online](http://www.haskell.org/onlinereport/haskell2010/) verfügbar. + +## GHC + +[GHC](http://www.haskell.org/ghc/) ist der beliebteste und bekannteste Weg mit Haskell zu arbeiten. +Es beinhaltet einen compiler, REPL (Interpreter), Paket Management, und ein paar weitere Dinge. + +## Cabal + +[Cabal](https://www.haskell.org/cabal/download.html) ist für Projekt Management und +Abhängigkeits Auflösung zuständig. Hiermit installierst du Projekte, normalerweise in ihre +eigene sandbox. + +Cabal ist äquivalent zu Rubys Bundler, Pythons pip, Nodes NPM, Maven, etc. GHC +kümmert sich selber um Packaging(??), Cabal wählt die zu installierende Version aus. + +# Getting set-up + +## Ubuntu + +[Dieses PPA](http://launchpad.net/~hvr/+archive/ghc) ist ausgezeichnet und ich benutze +es auf allen meine Linux Entwicklungs- und Buildmaschinen + +Genauer: + +```bash +$ sudo apt-get update +$ sudo apt-get install python-software-properties # v12.04 and below +$ sudo apt-get install software-properties-common # v12.10 and above +$ sudo add-apt-repository -y ppa:hvr/ghc +$ sudo apt-get update +$ sudo apt-get install cabal-install-1.20 ghc-7.8.3 happy-1.19.4 alex-3.1.3 +``` + +Dann füge das folgende zu deinem `$PATH` (bash\_profile, zshrc, bashrc, etc) hinzu: + +``` +~/.cabal/bin:/opt/cabal/1.20/bin:/opt/ghc/7.8.3/bin:/opt/happy/1.19.4/bin:/opt/alex/3.1.3/bin +``` + +*Optional:* Du kannst auch `.cabal-sandbox/bin` zu deinem PATH hinzufügen. Code, der gerade +entwickelt wird, ist dann verfügbar über die Kommandozeile. Das funktioniert aber nur, +wenn das aktuelle Verzeichnis eine Cabal Sandbox ist. + +## Debian + +### GHC Repository for debian stable + +Wenn du Debian stable nutzt, ist es einfacher http://deb.haskell.org/ zu benutzen. +Dafür mache folgendes: + +- Füge die Zeile `deb http://deb.haskell.org/stable/ ./` zu `/etc/apt/sources.list` hinzu + +```bash +## Add the key to avoid warnings +$ GET http://deb.haskell.org/deb.haskell.org.gpg-key | apt-key add - +$ sudo apt-get update +$ sudo apt-get install ghc-7.8.3 happy alex cabal-install +``` + +### Ubuntu PPA nutzen + +Wenn du nicht stable benutzt, kannst du dieselben Schritte wie unter Ubuntu ausführen, aber du musst +ein weiteres Kommando ausführen. Direkt nachdem +`sudo add-apt-repository -y ppa:hvr/ghc` ausgeführt wurde, starte: + +```bash +$ sudo sed -i s/jessie/trusty/g /etc/apt/sources.list.d/hvr-ghc-jessie.list +``` + +Für alle anderen Debian Versionen, ersetze einfach alle Vorkommen von `jessie` mit dem entsprechenden +Versions Namen im Kommando oben. + +Wenn, warum auch immer, die Datei `/etc/apt/sources.list.d/hvr-ghc-jessie.list` nicht existiert, +dann sollte `/etc/apt/sources.list` eine Liste, wie die folgende beinhalten: + + deb http://ppa.launchpad.net/hvr/ghc/ubuntu jessie main + +Ersetze `jessie` durch `trusty` in dieser Zeile. + +### Manuell Kompilieren + +Du kannst +[dieser](http://www.davesquared.net/2014/05/platformless-haskell.html) Anleitung folgen +(geschrieben für Mac OS X): + +Anmerkungen: + +- Setze deinen Prefix entsprechend, wenn du GHC konfiguierst +- Anstatt die `cabal-install` Binary zu laden, lade die Quellen und führe das Skript + `bootstrap.sh` aus. + +## Fedora 21 + +Um Haskell 7.8.4 aus dem unoffiziellen Repo (Fedora 22+ wird es in den offiziellen beinhalten) +zu installieren: + +```bash +$ sudo yum-config-manager --add-repo \ +> https://copr.fedoraproject.org/coprs/petersen/ghc-7.8.4/repo/fedora-21/petersen-ghc-7.8.4-fedora-21.repo +$ sudo yum install ghc cabal-install +``` + +Wie in +[petersen/ghc-7.8.4 copr page](https://copr.fedoraproject.org/coprs/petersen/ghc-7.8.4/) +beschrieben kann dieser ghc nicht parallel zu Fedora/EPEL ghc installiert werden. + +## Arch Linux + +Um Haskell aus den offiziellen Repos unter Arch Linux zu installieren, mache folgendes: + +```bash +$ sudo pacman -S cabal-install ghc happy alex haddock +``` + +## Gentoo + +Unter Gentoo kannst du verschiedene Komponenten der Haskell Platform +via Portage installieren. Wenn du `ACCEPT_KEYWORDS=arch` nutzt (anstatt +`ACCEPT_KEYWORDS=~arch`), installiert Portage die uralt Versionen der verschiedenen +Haskell Teile. Daher, füge wenn du, und *nur* wenn du `ACCEPT_KEYWORDS=arch` nutzt, das +folgende in `/etc/portage/package.keywords` ein. + + dev-haskell/cabal-install + dev-lang/ghc + +Wenn das getan ist, + +```bash +$ emerge -jav dev-lang/ghc dev-haskell/cabal-install +``` + +Gentoo hat eine "stabile" (lies: alte) Version von `cabal-install` im Portage +tree, daher wirst du `cabal-install` nutzen wollen um eine neuere version zu installieren. +Beachte, dass backslashes Absicht sind. + +```bash +$ \cabal update # The backslashes +$ \cabal install cabal-install # are intentional +``` + +Du hast cabal jetzt global mit Portage und lokal in deinem Home Verzeichnis mit +`cabal-install` installiert. Der nächste Schritt ist sicherzustellen, dass, wenn du +`cabal` im Terminal ausführst, die aktuelle Version genommen wird. +Dafür kannst du folgende Zeilen zur Konfiguration deiner Shell hinzufügen: + +```bash +PATH=$PATH:$HOME/.cabal/bin +alias cabal="$HOME/.cabal/bin/cabal" +``` + +Wenn du nicht weißt, was für eine Shell du nutzt, ist es mit hoher Wahrscheinlichkeit die Bash. +Wenn du die Bash nutzt, musst du die Datei `~/.bashrc` editieren. Wenn du die Z-shell nutzt, ist +die Datei `~/.zshrc`. Du kannst folgendes Kommando ausführen, um herauszufinden, was für eine Shell +du benutzt: + +```bash +echo $SHELL | xargs basename +``` + +Ich nutze zsh, daher ist die Ausgabe `zsh`, wenn ich es ausführe. + +Wenn du all das getan hast, brauchst du die weiteren Tools`alex` und +`happy`. + +```bash +$ cabal install alex happy +``` + +Glückwunsch! Du hast jetzt eine funktionierende Haskell installation! \ No newline at end of file