Scalaのパッケージ管理システム sbazとは

Scala Bazaar Systemとは

Scala Bazaar System、略してsbazはScalaの提供するパッケージ管理システム。新しいプログラムのインストールやアップグレードを自動化でき、パッケージの配布を容易にする。CPANやaptみたいな感じ

Scalaのインストール

念のため、Scalaのインストールから順を追って、、
http://www.scala-lang.org/からDownload Scalaのリンクを辿り、実行ファイルダウンロード&解凍
ここでは解凍したファイルを C:\Program Files\scala に配置

PATH環境変数の追加

binディレクトリのフルパスをPATH環境変数に追加する。一時的であれば、コマンドプロンプト立ち上げて、

set path=%path%;C:\Program Files\scala\bin

または、[システムのプロパティ]-[詳細設定]-[環境変数]でPATHに追加
scala -versionにてバージョン情報が表示できればOK

>scala -version
Scala code runner version 2.7.5.final -- Copyright 2002-2009, LAMP/EPFL

インストール状況の確認

インストール状況の確認には「sbaz installed」とする

>sbaz installed
base/1.9
sbaz/1.25tmp
sbaz-setup/1.0
scala/2.7.5.final
scala-devel/2.7.5.final
scala-library/2.7.5.final
scala-tool-support/2.7.5.final
7 packages installed

有効なパッケージの確認

有効なパッケージの確認には「sbaz available」とする

>sbaz available
Actorrent (0.1)
base (1.9, 1.8, 1.7)
bcprov-jdk14 (0.0.0.1)
・・・
scala-test (2.7.5.final, 2.7.4.final, 2.7.3.final, ...)
・・・
53 package names
332 total packages

なにやらいっぱい出てくる・

パッケージのインストール

Scalaでの単体テストをサポートする scala-test をインストールしてみる

>sbaz install scala-test
planning to install: scala-test/2.7.5.final
Installing...

確認してみよう

>sbaz installed
base/1.9
sbaz/1.25tmp
sbaz-setup/1.0
scala/2.7.5.final
scala-devel/2.7.5.final
scala-library/2.7.5.final
scala-test/2.7.5.final
scala-tool-support/2.7.5.final
8 packages installed

scala-testがインストールされたことがわかる。

パッケージの除去

先ほどインストールしたパッケージを除去

>sbaz remove scala-test
removing scala-test/2.7.5.final

パッケージのアップグレード

>sbaz upgrade
Refreshing list of available packages...
Nothing to upgrade.

そうですか、最新ですか

universe

sbazのパッケージはuniverseと呼ばれるリポジトリで管理されている。
現在のリポジトリは以下のように確認できる

>sbaz showuniverse
SimpleUniverse "scala-dev" (http://scala-webapps.epfl.ch/sbaz/scala-dev)

別のリポジトリからパッケージを取得したい場合は、

>sbaz setuniverse misc/sbaz/descriptors/scala-dev

とかでuniverseを変更できる。

その他のコマンド

helpで見ることができる

>sbaz -help
sbaz [ global_options... ] command command_options...

Global options:

   -d         Operate on dir as the local managed directory.
   -n | --dryrun   Do not actually do anything.  Only print out what
                   tool would normally do with the following arguments.
   -v | --verbose  Output messages about what the sbaz tool is doing.
   -version        Version information.
   --univ name     Operate on the named remote universe.
   --univ-url url  Operate on the remote universe at the specified url.


Available commands:

available - list the available packages for installation
compact - clear the download cache to save space
help - display a help message
install - install a package
installed - list the packages that are installed
keycreate - request that a new key be created
keyforget - forget the specified key
keyknown - list all known keys
keyremember - remember the specified key for future use
keyremoteknown - list all keys known to the bazaar server
keyrevoke - request that a specified key be revoked
pack - create an sbaz package
remove - remove a package
retract - retract a previously shared package
setuniverse - set the universe for a directory
setup - initialize a directory to be managed
share - upload a package description to the universe
show - show information about one package
showuniverse - show the active universe
update - update the list of available packages
upgrade - upgrade all possible packages