sbaz : Scala Bazaar System, gestionnaire de paquets

by Maxime Biais on septembre 24th, 2009

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 :

  1. Mettre à jour sa liste de paquets (update)
  2. 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 :

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.

Post to Twitter Post to Delicious Post to Digg Post to Facebook Post to Reddit Post to StumbleUpon

Categorie : Méta

Laisser un commentaire

Note: format XHTML. Votre adresse email ne sera pas publiee.

Subscribe to this comment feed via RSS