概要
- F# で遊びたい。
- ubuntu で遊びたい。
- Visual Studio Code で遊びたい。
- cmake で遊びたい。
この様な場合の環境構築についてメモを残したい。
環境構築
ubuntu
適当に用意して下さい。 16.04 を入れた事にして話を進めます。
mono + fsharp + nuget
sudo apt-get install mono-complete fsharp nuget
この段階で fsharpc
(コンパイラー)、 fsharpi
(インタープリター)、 mono
( .net な .exe の JIT なコンパイラー)、 nuget
( .net なパッケージマネージャー) が使用可能になる。
vscode + Ionide
- Visual Studio Code の .deb パッケージを拾って install
-
Ionide を vscode から install
- CTRL + P ->
> ext install Ionide
- CTRL + P ->
FAKE, Paket
nuget
を使い、手作業で FAKE と Paket もシステムに用意する。
sudo su -
cd /opt
nuget FAKE
ln -s FAKE.4.50.0 FAKE
nuget Paket
ln -s Paket.3.35.1 Paket
cd /usr/local/bin
echo -e '#!/bin/sh\n/opt/FAKE/tools/FAKE.exe $@' > FAKE
chmod +x FAKE
echo -e '#!/bin/sh\n/opt/Paket/tools/paket.exe $@' > paket
chmod +x paket
ln -s FAKE FAKE.exe
ln -s paket paket.exe
これでシステムに FAKE と Paket を導入し、 FAKE
(または FAKE.exe
)、 paket
(または paket.exe
) で何時でも使用可能になる。
- Notes:
- この記事を読むタイミングによっては FAKE, Paket の導入されるバージョンは異なる可能性がある。
ln -s
で作成する symlink を貼る際には適当に置き換える。 - /usr/local/bin に symlink ではなくシェルスクリプトを用意する方法はそれぞれの .exe が依存する .dll の都合を簡単に解決できるためそのようにした。
- これらをシステムへ用意する事が嫌ならプロジェクト毎に必要に応じて用意すれば良い。
- システムへ用意する場合も手作業での方法は様々な方法があるので必ずしもこの例と同様に行う必要は無い。
- この記事を読むタイミングによっては FAKE, Paket の導入されるバージョンは異なる可能性がある。
使い方
後は使うだけ。適当にプロジェクトを作ってにゃんにゃんしましょう。
プロジェクトのディレクトリーを準備し、 vscode を起動
mkdir -p ~/tmp/hoge
cd ~/tmp/hoge
git init
code .
- Note: こうした作業も vscode で処理したい、あるいはそもそも git を使わないなどはお好みでどうぞ。
vscode の Ionode プラグインでプロジェクトの雛形を用意
CTRL + P から:
> F#: New Project
今回はとりあえず console で作る:
console
プロジェクト単位の場所や名称を続けて聞かれるので入力して進める。今回は "hoge" プロジェクトを作成してみました。必要なファイルなど自動的に用意してくれます:
自動的に用意された hoge.fs:
ビルド
sh build.sh
実行
mono build/hoge.exe hello
Note: chmod +x
すれば mono
を明示的に経由しなくても build/hoge.exe hello
の様にも実行可能になる。