はじめに
Rubyに似た構文を持つ静的型付けのコンパイル言語Crystalを知って、少し触ってみようとCrystalのWeb FrameworkであるAmberのGetting Startedをやってみたら動かなかったのでどうにかしたときの備忘録です。
WSL2上で行ったため、WSL2のタグをつけていますがWSL2特有ではないと思います。
バージョンなど
- OS Ubuntu20.04
- Crystal 1.2.0
- Amber 1.0.0rc2
Amberのインストール
AmberのGitHubにあるインストール方法はmakeでエラーになります。原因はshards install
をしていまいとshard.lock
が存在しないためです。またmake install
は権限を要求するので正しくは下記のようにインストールする必要があります。
sudo apt-get install libreadline-dev libsqlite3-dev libpq-dev libmysqlclient-dev libssl-dev libyaml-dev libpcre3-dev libevent-dev
curl -L https://github.com/amberframework/amber/archive/stable.tar.gz | tar xz
cd amber-stable/
shards install
sudo make install
Error: undefined constant GarnetSpec::Controller::Test
amber watch
を実行した際に上記のエラーが発生しました。garnet_specに由来するもののようだが原因はよくわからなかったです。shard.yml
の記述を変更し、garnet-spec
のバージョンを0.2.1
に変更することでエラーが消えます。
development_dependencies:
garnet_spec:
github: amberframework/garnet-spec
version: 0.2.1
ameba:
github: crystal-ameba/ameba
version: ~> 0.13.4
shard.yml
編集後以下を実行
shards install
--: 1: npm: not found
amber watch
はnpmが必要らしいです。普通にnpm
をインストールすればいいです。
sudo apt install npm
最後に
とりあえずCrystal&Amberが触れる環境が作れたのでこれからいろいろ試してみたいと思います。
Rubyと似ているので学習コストは低そうな気がする?
AmberもRailsに大分似ているので意外と簡単に使えるかもしれない。(ただ、Rails7でだいぶフロントエンドが変わるらしいのでどっちがいいとか言いにくい感じがある)