![]()
Installer BaculaPrérequisEn général, il vous faudra les sources de la version courante de Bacula, et si vous souhaitez exécuter un client Windows, vous aurez besoin de la version binaire du client Bacula pour Windows. Par ailleurs, Bacula a besoin de certains paquettages externes (tels readline, SQLite, MySQL ou PostgreSQL) pour compiler correctement en accord avec les options que vous aurez choisi. Pour vous simplifier la tâche, nous avons combiné plusieurs de ces programmes dans deux paquettages depkgs (paquettages de dépendances). Ceci peut vous simplifier la vie en vous fournissant tous les paquets nécessaires plutôt que de vous contraindre à les trouver sur la Toile, les charger et installer.Mettre Bacula à jourSi vous faites une mise à jour de Bacula, vous devriez d'abord lire attentivement les ReleaseNotes de toutes les versions entre votre version installée et celle vers laquelle vous souhaitez mettre à jour. Si la base de donnée du catalogue a été mise à jour, vous devrez soit réinitialiser votre base de données et repartir de zéro, soit en sauvegarder une copie au format ASCII avant de procéder à sa mise à jour. S'il y a eu plusieurs mises à jour de la base de données entre votre version et celle vers laquelle vous souhaitez évoluer, il faudra appliquer chaque script de mise à jour de base de données. Vous pouvez trouver tous les anciens scripts de mise à jour dans le répertoire upgradedb des sources de Bacula. Il vous faudra éditer ces scripts pour qu'ils correspondent à votre configuration. Le script final, s'il y en a un, sera dans le répertoire src/cats comme indiqué dans la ReleaseNote.Si vous migrez d'une version majeure vers une autre, vous devrez remplacer tous vos composants (daemons) en même temps car, généralement, le protocole inter-daemons aura changé. Par contre, entre deux versions mineures d'une même majeure (par exemple les versions 1.32.x), à moins d'un bug, le protocole inter-daemons ne changera pas. Si cela vous semble confus, lisez simplement les ReleaseNotes três attentivement, elles signaleront si les daemons doivent être mis à jour simultanément. Paquettage de DépendencesComme nous l'évoquions plus haut, nous avons combiné une série de programmes dont Bacula peut avoir besoin dans les paquets depkgs et depkgs1. Vous pouvez, bien sur, obtenir les paquets les plus récents directement des auteurs. Le fichier README dans chaque paquet indique où les trouver. Pourtant, il faut noter que nous avons testé la compatibilité des paquets contenus dans les fichiers depkgs avec Bacula.Typiquement, ils seront nommés depkgs-ddMMMyy.tar.gz où dd est le jour où n'ous l'avons publié, MMM l'abbréviation du mois et yy l'année. Par exemple: depkgs-07Apr02.tar.gz. Pour installer et construire ce paquettage (s'il est requis), vous devez:
Notez que certains de ces paquets sont de taille respectable, si bien que l'étape de compilation peut prendre un peu de temps. Les instructions ci-dessous construiront tous les paquets contenus dans le répertoire. Cependant, la compilation de Bacula, ne prendra que les morceaux dont Bacula a effectivement besoin. Une alternative consiste à ne construire que les paquets nécessaires. Par exemple, cd bacula/depkgs make sqliteconfigurera et construira SQLite et seulement SQLite. Vous devriez construire les paquets requis parmi depkgs et/ou depkgs1 avant de configurer et compiler Bacula car Bacula en aura besoin dès la compilation. Même si vous n'utilisez pas SQLite, vous pourriez trouver le paquet depkgs pratique pour construire mtx car le programme tapeinfo qui vient avec peut souvent vous fournir de précieuses informations sur vos lecteurs de bandes SCSI (e.g. compression, taille min/max des blocks,...). Le paquet depkgs-win32 contient le code source pour les librairies pthreads et zlib utilisées par le client Win32 natif. Vous n'en aurez besoin que si vous prévoyez de construire le client Win32 depuis les sources. Systèmes SupportésVeuillez consulter la section Systèmes supportés du chapitre Démarrer avec Bacula de ce manuel.Construire Bacula à partir des sourcesL'installation basique est plutôt simple.
Si tout se passe bien, ./configure déterminera correctement votre système et configurera correctement le code source. Actuellement, FreeBSD, Linux (RedHat), et Solaris sont supportés. Des utilisateurs rapportent que le client Bacula fonctionne sur MacOS X 10.3 tant que le support readline est déqactivé. Si vous installez Bacula sur plusieurs systèmes identiques, vous pouvez simplement transférer le répertoire des sources vers ces autres systèmes et faire un "make install". Cependant s'il ya des différences dans les librairies, ou les versions de systèmes, ou si vous voulez installer sur un système différent, vous devriez recommencer à partir de l'archive tar compressée originale. si vous transférez un répertoire de sources où vous avez déjà exécuté la commande ./configure, vous DEVEZ faire: make distcleanavant d'exécuter à nouveau ./configure. Ceci est rendu nécessaire par l'outil GNU autoconf qui met la configuration en cache, de sorte que si vous réutilisez la configuration d'une machine Linux sur un Solaris, vous pouvez être certain que votre compilation échouera. Pour l'éviter, comme mentionné plus haut, recommencez depuis l'archive tar, ou faites un "make distclean". En général, vous voudrez probablement sophistiquer votre configure pour vous assurer que tous les modules que vous souhaitez soient construits et que tout soit placé dans les bons répertoires. Par exemple, sur RedHat, on pourrait utiliser ceci: CFLAGS="-g -Wall" \ ./configure \ --sbindir=$HOME/bacula/bin \ --sysconfdir=$HOME/bacula/bin \ --with-pid-dir=$HOME/bacula/bin/working \ --with-subsys-dir=$HOME/bacula/bin/working \ --with-mysql=$HOME/mysql \ --with-working-dir=$HOME/bacula/bin/working \ --with-dump-email=$USERNotez: l'avantage de cette configuration pour commencer, est que tout sera mis dans un seul répertoire, que vous pourrez ensuite supprimer une fois que vous aurez exécuté les exemples du prochain chapitre, et appris comment fonctionne Bacula. De plus, ceci peut être installé et exécuté sans être root. Pour le confort des développeurs, j'ai ajouté un script defaultconfig au répertoire examples. Il contient les réglages que vous devriez normalement utiliser, et chaque développeur/utilisateur devrait le modifier pour l'accorder à ses besoins. Vous trouverez d'autres exemples dans ce répertoire. Les options --enable-conio ou --enable-readline sont utiles car elles fournissent un historique de lignes de commandes et des capacités d'édition à la Console. Si vous avez inclus l'une ou l'autre option, l'un des deux paquets termcap ou ncurses sera nécessaire pour compiler. Sur certains systèmes, tels que Suse, la librairie termcap n'est pas dans le répertoire standard des librairies par conséquent, l'option devrait être désactivée ou vous aurez un message tel que: /usr/lib/gcc-lib/i586-suse-linux/3.3.1/.../ld: cannot find -ltermcap collect2: ld returned 1 exit statusilors de la comilation de la Console Bacula. Dans ce cas, il vous faudra placer la variable d'environnement LDFLAGS avant de compiler. export LDFLAGS="-L/usr/lib/termcap"Les mêmes contraintes de librairies s'appliquent si vous souhaitez utiliser les sous-programmes readlines pour l'édition des lignes de commande et l'historique. Veuillez noter que sur certains systèmes tels que Mandrake, readline tend à "avaler" l'invite de commandes, ce qui le rend totalement inutile. Si cela vous arrive, utilisez l'option "disable", ou si vous utilisez une version postérieure à 1.33 essayez --enable-conio pour utiliser une alternative à readline intégrée. Il vous faudra tout de même termcap ou ncurses, mais il est peu probable que le paquettage conio gobe vos invites de commandes. Quelle base de données utiliser ?Avant de construire Bacula, vous devez décider si vous voulez utiliser SQLite, MySQL ou PostgreSQL. Si vous n'avez pas déjà MySQL ou PostgreSQL sur votre machine, nous vous recommandons de démarrer avec SQLite pour vous faciliter l'installation.Si vous souhaitez utiliser MySQL pour votre catalogue Bacula, consultez le chapitre Installer et Configurer MySQL de ce manuel. Vous devrez installer MySQL avant de poursuivre avec la configuration de Bacula. Si vous souhaitez utiliser PostgreSQL pour votre catalogue Bacula, consultez le chapitre Installer et Configurer PostgreSQL de ce manuel. Vous devrez installer PostgreSQL avant de poursuivre avec la configuration de Bacula. Si vous souhaitez utiliser SQLite pour votre catalogue Bacula, consultez le chapitre Installer et Configurer SQLite de ce manuel. Démarrage rapideIl y a de nombreuses options et d'importantes considérations données ci-dessous que vous pouvez passer pour le moment si vous n'avez eu aucun problème lors de la compilation de Bacula avec une configuration simplifiée comme celles montrées plus haut.Si vous souhaitez vous jeter à l'eau, nous vous conseillons de passer directement au chapitre suivant, et d"executer le jeu d'exemples. Il vous apprendra beaucoup sur Bacula, et un Bacula de test peut être installé dans un unique répertoire (pour une destruction aisée) et exécuté sans être root. Revenez lire les détails de ce chapitre si vous avez un quelconque problème avec les exemples, ou lorsque vous voudrez effectuer une installation réelle. Options de la commande configureLes options en ligne de commande suivantes sont disponibles pour configure afin d'adapter votre installation à vos besoins.
Options recommandées pour la plupart des systèmesPour la plupart des systèmes, nous recommandons de commencer avec les options suivantes : ./configure \ --enable-smartalloc \ --sbindir=$HOME/bacula/bin \ --sysconfdir=$HOME/bacula/bin \ --with-pid-dir=$HOME/bacula/bin/working \ --with-subsys-dir=$HOME/bacula/bin/working \ --with-mysql=$HOME/mysql \ --with-working-dir=$HOME/bacula/working Si vous souhaitez installer Bacula dans un répertoire d'installation plutôt que de l'exécuter depuis le répertoire d'installation, (comme le feront les développeurs la plupart du temps), vous devriez aussi inclure les options --sbindir et --sysconfdir avec les chemins apropriés. Aucune n'est nécessaire si vous ne vous servez pas de "make install", comme c'est le cas pour la plupart des travaux de développement. L'exemple ci-dessous montre la façon de procéder de Kern. RedHatAvec SQLite:CFLAGS="-g -Wall" ./configure \ --sbindir=$HOME/bacula/bin \ --sysconfdir=$HOME/bacula/bin \ --enable-smartalloc \ --with-sqlite=$HOME/bacula/depkgs/sqlite \ --with-working-dir=$HOME/bacula/working \ --with-pid-dir=$HOME/bacula/bin/working \ --with-subsys-dir=$HOME/bacula/bin/working \ --enable-gnome \ --enable-conioou CFLAGS="-g -Wall" ./configure \ --sbindir=$HOME/bacula/bin \ --sysconfdir=$HOME/bacula/bin \ --enable-smartalloc \ --with-mysql=$HOME/mysql \ --with-working-dir=$HOME/bacula/working --with-pid-dir=$HOME/bacula/bin/working \ --with-subsys-dir=$HOME/bacula/bin/working --enable-gnome \ --enable-conio Solaris#!/bin/sh CFLAGS="-g" ./configure \ --sbindir=$HOME/bacula/bin \ --sysconfdir=$HOME/bacula/bin \ --with-mysql=$HOME/mysql \ --enable-smartalloc \ --with-pid-dir=$HOME/bacula/bin/working \ --with-subsys-dir=$HOME/bacula/bin/working \ --with-working-dir=$HOME/bacula/working FreeBSDVeuillez consulter: The FreeBSD Diary pour une description détaillée de la méthode pour faire fonctionner Bacula sur votre système. De plus, les utilisateurs de versions de FreeBSD antérieures à la 4.9-STABLE du lundi 29 décembre 2003 15:18:01 qui envisagent d'utiliser des lecteurs de bandes doivent consulter le chapitre Tester son lecteur de bandes de ce manuel pour d'importantes informations sur la configuration des lecteurs pour qu'ils soient compatibles avec Bacula.Win32Pour installer la version binaire Win32 du File Daemon, consultez le chapitre Installation sur systèmes Win32 de ce document.Systèmes Windows avec CYGWIN installéSi vous souhaitez compiler les sources, il vous faudra Microsoft C++ version 6.0 ou supérieur. Dans les versions de Bacula antérieures à la 1.33, CYGWIN était utilisé. A partir de la version 1.33, la version CYGWIN du client Bacula a été abandonnée au profit d'un client Win32 natif (File Daemon). Notez qu'en dépit du fait que la plupart des éléments de Bacula puissent compiler sur les systèmes Windows, la seule partie que nous ayons testée et utilisée est le File Daemon. Finalement, vous devriez suivre les instructions d'installation de la section Win32 Installation sur systèmes Win32 de ce document en occultant la partie qui décrit la décompression de la version binaire. Le script Configure de KernVoici le script que j'utilise pour compiler sur mes machines Linux de "production":#!/bin/sh # This is Kern's configure script for Bacula CFLAGS="-g -Wall" \ ./configure \ --sbindir=$HOME/bacula/bin \ --sysconfdir=$HOME/bacula/bin \ --enable-smartalloc \ --enable-gnome \ --with-pid-dir=$HOME/bacula/bin/working \ --with-subsys-dir=$HOME/bacula/bin/working \ --with-mysql=$HOME/mysql \ --with-working-dir=$HOME/bacula/bin/working \ --with-dump-email=$USER \ --with-smtp-host=mail.your-site.com \ --with-baseport=9101 exit 0Notez que je fixe le port de base à 9101, ce qui signifie que Bacula utilisera le port 9101 pour la console Director, le port 9102 pour le File Daemon, et le 9103 pour le Storage Daemon. Ces ports devraient être disponibles sur tous les systèmes étant donné qu'ils ont été officiellement attribués à Bacula par l'IANA (Internet Assigned Numbers Authority). Nous recommandons fortement de n'utiliser que ces ports pour éviter tout conflit avec d'autres programmes. Ceci est en fait la configuration par défaut si vous n'utilisez pas l'option --with-baseport. Vous pouvez aussi insérer les entrées suivantes dans votre fichier /etc/services de façon à rendre les connections de Bacula plus aisées à repérer (i.e. netstat -a): bacula-dir 9101/tcp bacula-fd 9102/tcp bacula-sd 9103/tcp Installer BaculaAvant de personnaliser vos fichiers de configuration, vous voudrez installer Bacula dans son répertoire définitif. tapez simplement:make installSi vous avez précédemment installé Bacula, les anciens binaires seront écrasés, mais les anciens fichiers de configuration resteront inchangés, et les "nouveaux" recevront l'extension .new. Généralement, si vous avez déjà installé et exécuté Bacula, vous préfèrerez supprimer ou ignorer les fichiers de configuration avec l'extension .new Compiler un File Daemon (ou Client)Si vous exécutez le Director et le Storage Daemon sur une machine et si vous voulez sauvegarder une autre machine, vous devez avoir un File Daemon sur cette machine. Si la machine et le système sont identiques, vous pouvez simplement copier le binaire du File Daemon bacula-fd ainsi que son fichier de configuration bacula-fd.conf, puis modifier le nom et le mot de passe dans bacula-fd.conf de façon à rendre ce fichier unique. Veillez à faire les modifications correspondantes dans le fichier de configuration du Director (bacula-dir.conf).Si les architectures, les systèmes, ou les versions de systèmes diffèrent, il vous faudra compiler un File Daemon sur la machine cliente. Pour ce faire, vous pouvez utiliser la même commande ./configure que celle utilisée pour construire le programme principal, soit en partant d'une copie fraiche du répertoire des sources, soit en utilisant make distclean avant de lancer ./configure. Le File Daemon n'ayant pas d'accès au catalogue, vous pouvez supprimer les option --with-mysql ou --with-sqlite. Ajoutez l'option --enable-client-only. Ceci va compiler seulement les librairies et programmes clients, et donc éviter d'avoir à installer telle ou telle base de données. Lancez make avec ctte configuration, et seul le client sera compilé. Démarrage automatique des DaemonsSi vous souhaitez que vos daemons soient lancés automatiquement au démarrage de votre système (une bonne idée !), une étape supplémentaire est requise. D'abord, le processus ./configure doit reconnaître votre système -- ce qui signifie que ce doit être une plate-forme supportée et non inconnue, puis vous devez installer les fichiers dépendants de la plate-forme comme suit :(devenez root) make install-autostartNotez que la fonction d'autodémarrage n'est implémentée que pour les systèmes que nous supportons officiellement (actuellement FreeBSD, RedHat Linux, et Solaris), et n'a été pleinement testée que sur RedHat Linux. make install-autostart installe les scripts de démarrage apropriés ainsi que les liens symboliques nécessaires. Sur RedHat Linux, Ces scripts résident dans /etc/rc.d/init.d/bacula-dir /etc/rc.d/init.d/bacula-fd, et /etc/rc.d/init.d/bacula-sd. Toutefois, leur localisation exacte dépend de votre système d'exploitation. Si vous n'installez que le File Daemon, tapez: make install-autostart-fd Autres notes concernant la compilationPour recompiler tout exécutable, tapez makedans le répertoire correspondant.. Afin d'éliminer tous les objets et binaires (y compris les fichiers temporaires nommés 1,2 ou 3 qu'utilise Kern), tapez make clean Pour un nettoyage exhaustif en vue de distribution, entrez: make distclean. Notez que cette commande supprimme les Makefiles. Elle est en principe lancée depuis la racine du répertoire des sources pour les préparer à la distribution. Pour revenir de cet état, vous devez réexécuter la commande ./configure à la racine des sources puisque tous les Makefiles ont été détruits. Pour ajouter un nouveau fichier dans un sous-répertoire, éditez Makefile.in dans ce sous-répertoire, puis faites un simple make. Dans la plupart des cas, le make reconstruira le Makefile à partir du nouveau Makefile.in. Dans certains cas, il peut être nécessaire d'exécuter make une deuxième fois. Dans les cas extrèmes, remontez à la racine des sources et entrez make Makefiles. Pour ajouter des dépendances: make dependLa commande make depend insère la les fichiers d'en-têtes de dépendances aux Makefile et Makefile.in pour chaque fichier objet. Cette commande devrait être lancée dans chaque répertoire où vous modifiez les dépendances. En principe, il suffit de l'exécuter lorsque vous ajoutez ou supprimez des sources ou fichiers d'en-têtes. make depend est invoqué automatiquement durant le processus de configuration. Pour installer: make installEn principe, vous n'utilisez pas cette commande si vous êtes en train de développer Bacula, mais si vous vous apprétez à l'exécuter pour sauvegarder vos systèmes. Après avoir lancé make install, les fichiers suivants seront installés sur votre système (à peu dechoses près). La liste exacte des fichiers installés et leur localisation dépend de votre commande c./configure (e.g. gnome-console et gnome-console.conf ne sont pas installés si vous ne configurez pas GNOME. De même, si vous utilisez SQLite plutôt que MySQL, certains fichiers seront différents. bacula bacula-dir bacula-dir.conf bacula-fd bacula-fd.conf bacula-sd bacula-sd.conf bacula-tray-monitor tray-monitor.conf bextract bls bscan btape btraceback btraceback.gdb bconsole bconsole.conf create_mysql_database dbcheck delete_catalog_backup drop_bacula_tables drop_mysql_tables fd gnome-console gnome-console.conf make_bacula_tables make_catalog_backup make_mysql_tables mtx-changer query.sql bsmtp startmysql stopmysql wx-console wx-console.conf Installer Tray MonitorLe Tray Monitor est déjà installé si vous avez utilisé l'option --enable-tray-monitor de la commande configure et exécuté make install.Comme vous n'exécutez pas votre environnement graphique en tant que root (si vous le faites, vous devriez changer cette mauvaise habitude), n'oubliez pas d'autoriser votre utilisateur à lire tray-monitor.conf, et exécuter bacula-tray-monitor (ceci ne constitue pas une faille de sécurité). Puis, connectez vous à votre
environnement graphique (KDE, Gnome, ou autre), lancez
bacula-tray-monitor avec votre utilisateur et observer si
l'icone d'une cartouche apparaît quelque part sur
l'écran, usuellement dans la barre des tâches. GNOMESystem tray, ou zone de notification si vous utilisez la terminologie GNOME, est supporté par GNOME depuis la version 2.2. Pour l'activer, faites un click droit sur un de vos espaces de travail, ouvrez le menu Ajouter à ce bureau, puis Utilitaire et enfin, cliquez sur Zone de notification. (NDT: A valider)KDESystem tray est supporté par KDE depuis la version 3.1. Pour l'activer, faites un click droit sur la barre de tâches, ouvrez le menu Ajouter, puis Applet, enfin cliquez sur System Tray.Autres gestionnaires de fenètresLisez la documentation pour savoir si votre gestionnaire de fenètres supporte le standard systemtray de FreeDesktop, et comment l'activer le cas échéant.Modifier les fichiers de configuration de BaculaConsultez le chapitreConfiguring Bacula de ce manuel pour les instructions de configuration de Bacula.
|