「Haskell」の版間の差分
細 (1版 をインポートしました) |
|||
5行目: | 5行目: | ||
== インストール == |
== インストール == |
||
− | Haskell は Linux でネイティブに実行することができるマシンコードを生成します。(コンパイル済みの) バイナリのソフトウェアを実行するのに特別なものは必要ありません。[[公式リポジトリ]]や [[ArchHaskell]] で提供されているソフトウェアと同じです。一方、[[ |
+ | Haskell は Linux でネイティブに実行することができるマシンコードを生成します。(コンパイル済みの) バイナリのソフトウェアを実行するのに特別なものは必要ありません。[[公式リポジトリ]]や [[ArchHaskell]] で提供されているソフトウェアと同じです。一方、[[AUR]] のパッケージやソースコードは、ソフトウェアをビルドするのにコンパイラを必要とします。 |
コンパイラをインストールするだけで Haskell のソースコードがビルドできるようになります。Haskell での開発を始めるためのツールのコンプリートセットである ''Haskell-Platform'' もあります。 |
コンパイラをインストールするだけで Haskell のソースコードがビルドできるようになります。Haskell での開発を始めるためのツールのコンプリートセットである ''Haskell-Platform'' もあります。 |
||
44行目: | 44行目: | ||
推奨されるワークフローは以下の通りです: |
推奨されるワークフローは以下の通りです: |
||
− | * [[公式リポジトリ]]または [[ArchHaskell|ArchHaskell |
+ | * [[公式リポジトリ]]または [[ArchHaskell|ArchHaskell リポジトリ]]は Hakell パッケージの第一のソース (ここでの ''or'' は排他) |
* [[#cabal-install|cabal-install]] (あるいは sandbox を使用) は Haskell 開発用 |
* [[#cabal-install|cabal-install]] (あるいは sandbox を使用) は Haskell 開発用 |
||
− | * [[ |
+ | * [[Arch User Repository]] は他で得られないパッケージのために使用 |
− | [https://github.com/magthe/cblrepo cblrepo] は Linux ディストリビューションの Haskell パッケージを管理するために使用するツールです。これのラッパーである、{{AUR|cabal2pkgbuild-git}} は Hackage パッケージから PKGBUILD を作成することができます。新しい Haskell パッケージを作成することについては [[Haskell |
+ | [https://github.com/magthe/cblrepo cblrepo] は Linux ディストリビューションの Haskell パッケージを管理するために使用するツールです。これのラッパーである、{{AUR|cabal2pkgbuild-git}} は Hackage パッケージから PKGBUILD を作成することができます。新しい Haskell パッケージを作成することについては [[Haskell パッケージガイドライン]]に詳しく記載があります。 |
=== 方法ごとのプラス面とマイナス面 === |
=== 方法ごとのプラス面とマイナス面 === |
||
65行目: | 65行目: | ||
| [[#cabal-install|cabal-install]] || 全てのパッケージが利用可能 || インストール先がホームフォルダ、{{Pkg|cabal-install}} [https://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager はパッケージマネージャではない]、パッケージのバージョンの整合性に問題がある可能性 (別名 [http://www.haskell.org/haskellwiki/Cabal/Survival#What_is_the_difficulty_caused_by_Cabal-install.3F cabal hell]) |
| [[#cabal-install|cabal-install]] || 全てのパッケージが利用可能 || インストール先がホームフォルダ、{{Pkg|cabal-install}} [https://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager はパッケージマネージャではない]、パッケージのバージョンの整合性に問題がある可能性 (別名 [http://www.haskell.org/haskellwiki/Cabal/Survival#What_is_the_difficulty_caused_by_Cabal-install.3F cabal hell]) |
||
|- |
|- |
||
− | | [[ |
+ | | [[Arch User Repository]] || 始めるのが簡単 || パッケージのメンテナンスがなくなる可能性、パッケージのバージョンの整合性に問題がある可能性 |
|- |
|- |
||
|} |
|} |
||
84行目: | 84行目: | ||
パスを指定しないでインストールした実行可能ファイルを実行するには、cabal のバイナリフォルダ {{ic|~/.cabal/bin}} を {{ic|$PATH}} 変数に追加する必要があります。シェルの設定ファイルに以下の行を記述することで追加できます ({{Pkg|bash}} の場合 {{ic|~/.bashrc}}、{{Pkg|zsh}} の場合 {{ic|~/.zshrc}}): |
パスを指定しないでインストールした実行可能ファイルを実行するには、cabal のバイナリフォルダ {{ic|~/.cabal/bin}} を {{ic|$PATH}} 変数に追加する必要があります。シェルの設定ファイルに以下の行を記述することで追加できます ({{Pkg|bash}} の場合 {{ic|~/.bashrc}}、{{Pkg|zsh}} の場合 {{ic|~/.zshrc}}): |
||
{{bc|PATH=$PATH:~/.cabal/bin}} |
{{bc|PATH=$PATH:~/.cabal/bin}} |
||
+ | cabal sandbox の中で実行したい場合: |
||
+ | PATH=$PATH:.cabal-sandbox/bin |
||
==== パッケージのインストール ==== |
==== パッケージのインストール ==== |
2015年11月9日 (月) 08:52時点における版
Haskell は多目的の、純関数型プログラミング言語です。
目次
インストール
Haskell は Linux でネイティブに実行することができるマシンコードを生成します。(コンパイル済みの) バイナリのソフトウェアを実行するのに特別なものは必要ありません。公式リポジトリや ArchHaskell で提供されているソフトウェアと同じです。一方、AUR のパッケージやソースコードは、ソフトウェアをビルドするのにコンパイラを必要とします。
コンパイラをインストールするだけで Haskell のソースコードがビルドできるようになります。Haskell での開発を始めるためのツールのコンプリートセットである Haskell-Platform もあります。
コンパイラ
Haskell のソースコードをネイティブコードにビルドするには、コンパイラをインストールする必要があります。複数の 実装 が存在しますが、一番よく使われている (事実上のリファレンス実装となっている) のは GHC (Glasgow Haskell Compiler) です。公式リポジトリの ghc でインストールができます。
次のファイルを用意して:
Main.hs
main = putStrLn "Hello, World"
以下を実行して試すことができます:
$ ghc Main.hs $ ./Main
Hello, World
Haskell Platform
Haskell での開発を簡単に始められる、haskell-platform バンドルは次のように説明されます:
- Haskell のプログラミングを始める一番簡単な方法です。立ち上げて動作させるのに必要な全てが入っています。次のように考えて下さい "Haskell: batteries included" (電池付属)。
AUR のパッケージが存在 (haskell-platformAUR) しますが、公式リポジトリから以下のパッケージをインストールすることに置き換えられます:
- ghc (ghc) — コンパイラ
- cabal-install (cabal-install) — Cabal と Hackage のコマンドラインインターフェイス
- haddock (haddock) — ドキュメントを生成するためのツール
- happy (happy) — パーサジェネレータ
- alex (alex) — 字句解析器ジェネレータ
Haskell パッケージの管理
Haskell ライブラリや実行可能ファイルの多くはパッケージにまとめられています。どれも Hackage から利用することが可能です。パッケージをインストール・管理する方法は複数存在します。あまり一般的でない方法もこのセクションで説明を行います。
推奨されるワークフローは以下の通りです:
- 公式リポジトリまたは ArchHaskell リポジトリは Hakell パッケージの第一のソース (ここでの or は排他)
- cabal-install (あるいは sandbox を使用) は Haskell 開発用
- Arch User Repository は他で得られないパッケージのために使用
cblrepo は Linux ディストリビューションの Haskell パッケージを管理するために使用するツールです。これのラッパーである、cabal2pkgbuild-gitAUR は Hackage パッケージから PKGBUILD を作成することができます。新しい Haskell パッケージを作成することについては Haskell パッケージガイドラインに詳しく記載があります。
方法ごとのプラス面とマイナス面
以下の表はそれぞれのパッケージ管理方法のメリットとデメリットのまとめです。
方法 | 良い点 | 悪い点 |
---|---|---|
公式リポジトリ | ArchLinux 開発者が運営、パッケージのバージョンの整合性に問題なし、コンパイル済み | 利用できるパッケージの数が限られる |
ArchHaskell リポジトリ | ArchHaskell グループが運営、パッケージのバージョンの整合性に問題なし、コンパイル済み | 使用するのに手動で設定が必要 |
cabal-install | 全てのパッケージが利用可能 | インストール先がホームフォルダ、cabal-install はパッケージマネージャではない、パッケージのバージョンの整合性に問題がある可能性 (別名 cabal hell) |
Arch User Repository | 始めるのが簡単 | パッケージのメンテナンスがなくなる可能性、パッケージのバージョンの整合性に問題がある可能性 |
ArchHaskell リポジトリ
詳細は ArchHaskell を見て下さい。
cabal-install
準備
公式リポジトリから cabal-install をインストールしてください。
パスを指定しないでインストールした実行可能ファイルを実行するには、cabal のバイナリフォルダ ~/.cabal/bin
を $PATH
変数に追加する必要があります。シェルの設定ファイルに以下の行を記述することで追加できます (bash の場合 ~/.bashrc
、zsh の場合 ~/.zshrc
):
PATH=$PATH:~/.cabal/bin
cabal sandbox の中で実行したい場合:
PATH=$PATH:.cabal-sandbox/bin
パッケージのインストール
$ cabal update $ cabal install <pkg>
-j
を追加することで並列コンパイルができます。また、--global
フラグを使うことでシステム全体にパッケージをインストールすることもできますが、これは非推奨です。ユーザーごとのインストールでは、全てのファイルは ~/.cabal
に配置されライブラリは ~/.ghc
に登録されるので、フォルダを削除することで簡単にクリーンアップすることができます。システム全体にインストールすると、ファイルがファイルシステムに散らばってしまい管理するのが難しくなります。
パッケージの削除
パッケージの削除を簡単に行う方法はありません。