shards コマンド¶
Crystal には通常、依存関係管理ツールとして Shards が付随しています。
これは Crystal のプロジェクトやライブラリの依存関係を管理して、あるシステムやコンピュータのまたがって再現可能なインストールを実現します。
インストール方法¶
Shards 通常であれば Crystal 自身と共に配布されています。そうでなければ、分割されたshardsパッケージがあなたのシステムでは有効かもしれません。
ソースコードからインストールするには、リポジトリからソースコードをダウンロードかクローンしてきて、make CRFLAGS=--releaseを実行します。コンパイルされたバイナリは bin/shards にあるので、PATH にそれを追加してください。
使い方¶
shards は shard.yml がプロジェクトのフォルダ (現在のディレクトリ) に置いてあることを要求します。このファイルはプロジェクトの説明と、ビルドに必要な依存関係のリストを含んでいます。
デフォルトのファイルは shards init を実行することで生成できます。
そのファイル内容はShardの書き方というガイドで説明されていて、詳細な説明はshard.yml の仕様 (英語)にあります。
shards install を実行すると、指定された依存関係の解決とインストールが行なわれます。
shards install がもう一度実行されたときに同じバージョンがインストールされるために、インストールしたバージョンは shard.lock に書き出されます。
アプリケーションを開発しているのであれば、再現可能な依存関係のインストールを実現するために、shard.yml と shard.lock をバージョン管理下に置いてください。
他のshardから依存されるようなライブラリである場合 shard.lock はバージョン管理下に置くべきではあありません。shard.yml のみを含めてください。.gitignore にそれを含めることをオススメします (crystal init は lib リポジトリを初期化する際にそれを自動的に行います).
shards コマンド¶
shards [<options>...] [<command>]
コマンドが指定されなかった場合、installがデフォルトでは実行されます。
shards build: 実行可能ファイルのビルドshards check: インストールされている依存関係の検証shards init:shard.ymlを新規に生成shards install: 依存関係の解決とインストールshards list: インストールされた依存関係の一覧を表示shards prune: 利用されていない依存関係の削除shards update: 依存関係の解決と更新shards version: shard のバージョンを表示
特定のコマンドの有効なオプションを確認したい場合は、コマンド名のあとに--helpを付けて実行してください。
よく使うオプション:
--version:shardsのバージョンを表示-h, --help: 使用方法をおおざっぱに表示--no-color: 色付けされた出力を無効にする--production: リリースモードで実行する。開発用の依存関係は実行されずロックされた依存関係のみがインストールされます。shard.ymlとshard.lockの依存関係の同期が取れていない場合にコマンドは失敗します (install、update、checkおよびlistの場合)-q, --quiet: ログの冗長さを減らして、警告およびエラーのみを表示するようにする-v, --verbose: ログの冗長さを増して、すべてのデバッグ用のメッセージも表示するようにする
shards build¶
shards build [<targets>] [<options>...]
bin にある指定したターゲットをビルドします。ターゲットが指定されていなければ、すべてがビルドされます。
このコマンドはビルド前に依存関係をインストールするので、shards install を事前に実行することは必要ではありません。
コマンドに続くすべてのオプションは crystal build に渡されます。
shards check¶
shards check
すべての依存関係がインストールされていて、要求を満たしているか検証します。
終了コード:
0: 依存関係は充足されています1: 依存関係は充足されていません
shards init¶
shards init
shard用のフォルダを生成して shard.yml を生成します。
shards install¶
shards install
依存関係を解決して、それらを lib にインストールします。shard.lock が存在しない場合、解決した依存関係、ロックしたバージョンもしくはGitコミットから生成します。
shard.lock がある場合は、そこからロックされたバージョンとコミットを読み込んで強制します。ロックされたバージョンが要求に一致しない場合、コマンドは失敗することがあります。しかし、衝突することなく新しい依存関係を追加できれば、新たなshard.lockファイルを生成してコマンドは成功します。
shards list¶
shards list
インストールされた依存関係とそれらのバージョンの一覧を表示します。
shards prune¶
shards prune
使われていない依存関係をlibフォルダから削除します。
shards update¶
shards update
shard.lock にロックされたバージョンやコミットがあるかどうかに関わらず、すべての依存関係を解決してlibフォルダの内容を再度更新します。最終的には新たな shard.lock を生成します。
shards version¶
shards version [<path>]
shard コマンドのバージョンを表示します。