sbaz : Scala Bazaar System, gestionnaire de paquets
Introduction
Le Scala Bazaar System, surnommé sbaz, est un gestionnaire de paquets permettant d’automatiser la tâche de maintenance d’une installation Scala. Cela permet:
- De mettre à jour son installation et les dépendances
- D’installer les bibliothèques enregistrées dans la base et leur dépendances
- De partager vos propres bibliothèques
Quelques commandes
Après avoir installé Scala (voir la page télécharger), un environnement de base est installé, comprenant scalac (le compilateur Scala), la bibliothèque standard, sbaz et scalap (un inspecteur de fichiers class Scala permettant de lire les fichiers générés par le compilateur scalac). Pour vérifier votre installation vous pouvez taper la commande 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 help vous liste les possibilités offertes par sbaz. Parmis les commandes les plus souvent utilisées on trouve :
$ sbaz help available - list the available packages for installation [...] install - install a package installed - list the packages that are installed [...] showuniverse - show the active universe update - update the list of available packages upgrade - upgrade all possible packages
Par exemple, je viens de trouver ScalaCheck, une bibliothèque permettant de générer des tests unitaires (suivez le blog, un article devrait bientôt arriver à propos de ScalaCheck). Je lance la commande :
$ sbaz available | grep check scalacheck (1.5, 1.4, 1.3, ...)
Parfait ! La bibliothèque est packagée dans scala-dev (l’univers par défaut), je peux l’installer directement en faisant :
$ sudo sbaz install scalacheck planning to install: scalacheck/1.5 Installing...
Et voilà, je peux maintenant utiliser scalacheck.
Pour mettre à jour son installation Scala, rien de plus simple. Il suffit de :
- Mettre à jour sa liste de paquets (update)
- Mettre à jour sa distribution (upgrade)
$ sudo sbaz update Updated the list of available packages. $ sudo sbaz upgrade Refreshing list of available packages... Planning to install scala/2.7.6.final... Planning to install scala-devel/2.7.6.final... Planning to install scala-library/2.7.6.final... Planning to install scala-tool-support/2.7.6.final... Installing...
Je viens de passer en version 2.7.6.
Les univers
Les univers sont des lieux de dépôts (repository) de paquets. Ils doivent assurer que les dépendances entre les paquets et leurs versions sont consistantes. Chaque installation sbaz est lié à un univers actif duquel les paquets sont téléchargés. Il existe 2 univers officiels :
- http://scala-webapps.epfl.ch/sbaz/scala-dev qui contient les versions stables de la distribution Scala et des logiciels et bibliothèques tiers. C’est l’univers par défaut.
- http://scala-webapps.epfl.ch/sbaz/lamp-rc contient les release candidates de Scala.
Pour connaître l’univers actif de votre installation taper la commande sbaz showuniverse
$ sbaz showuniverse SimpleUniverse "scala-dev" (http://scala-webapps.epfl.ch/sbaz/scala-dev)
Dans mon cas, je suis sur la version stable.
Pour changer d’univers il faut utiliser la commande sbaz setuniverse. Commande à qui il faut donner en paramètre un fichier descripteur qui contient les informations de l’univers que vous souhaitez rendre actif. J’aurais aimé pouvoir lui donner directement une URL qui pointe vers ce descripteur, mais ce n’est à priori pas possible.
Example de fichier descripteur :
<simpleuniverse> <name>lamp-rc</name> <description> Scala release candidates </description> <location>http://scala-webapps.epfl.ch/sbaz/lamp-rc</location> </simpleuniverse>
Note : les descripteurs pour scala-dev et lamp-rc sont disponibles dans votre SCALA_HOME ($SCALA_HOME/misc/sbaz/descriptors/lamp-rc et $SCALA_HOME/misc/sbaz/descriptors/scala-dev).
Changement d’univers vers lamp-rc :
$ sudo sbaz setuniverse $SCALA_HOME/misc/sbaz/descriptors/lamp-rc Password: Universe established. $ sbaz available sudo sbaz available scala (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-android (2.7.0-RC3, 2.7.0-RC2, 2.7.0-RC1, ...) scala-cldc (2.7.0-RC3, 2.7.0-RC2, 2.7.0-RC1, ...) scala-devel (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-devel-docs (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-documentation (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-library (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-msil (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-swing (0.1) scala-test (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scala-tool-support (2.7.4.RC1, 2.7.3.RC2, 2.7.3.RC1, ...) scalap (2.7.1.RC2, 2.7.1.RC1, 2.7.0-RC3, ...) 12 package names 145 total packages
Pour revenir à l’univers stable:
$ sudo sbaz setuniverse $SCALA_HOME/misc/sbaz/descriptors/scala-dev Password: Universe established
Plus d’informations sur le site de sbaz.