]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/en/main/install.tex
Merge branch 'Branch-5.2' of bsweb:docs into Branch-5.2
[bacula/docs] / docs / manuals / en / main / install.tex
index d4ca80a93017f380cf4fa4174e365aaf93a18aec..0caf87ada3410952773bdf7ee827750d408a866a 100644 (file)
@@ -27,50 +27,41 @@ them.
  the Bacula SVN. The released files are:
 
 \begin{description}
-\item [bacula-3.0.3.tar.gz]
+\item [bacula-5.0.0.tar.gz]
   This is the primary source code release for Bacula. On each
-  release the version number (3.0.3) will be updated.
+  release the version number (5.0.0) will be updated.
 
-\item [bacula-docs-3.0.3.tar.gz]
+\item [bacula-docs-5.0.0.tar.bz2]
   This file contains a copy of the docs directory with the
   documents prebuild. English HTML directory, single HTML
-  file, and pdf file. The French and German translations
+  file, and pdf file. The French, German, Spanish translations
   are in progress, but are not built.
 
-\item [bacula-gui-3.0.3.tar.gz]
+\item [bacula-gui-5.0.0.tar.gz]
   This file contains the non-core GUI programs. Currently,
   it contains bacula-web, a PHP program for producing management
   viewing of your Bacula job status in a browser; and bimagemgr
   a browser program for burning CDROM images with Bacula Volumes.
 
-\item [bacula-rescue-3.0.3.tar.gz]
-  This is the Bacula Rescue CDROM code. Note, the version number
-  of this package is not tied to the Bacula release version, so
-  it will be different.  Using this code, you can burn a CDROM
+\item [bacula-rescue-5.0.0.tar.gz]
+  This is the Bacula Rescue USB key code. Note, the version number
+  of this package is not always tied to the Bacula release version, so
+  it may be different.  Using this code, you can create a USB key
   with your system configuration and containing a statically
   linked version of the File daemon. This can permit you to easily
   repartition and reformat your hard disks and reload your
   system with Bacula in the case of a hard disk failure.
-  Unfortunately this rescue disk does not properly boot for
-  all Linux distributions. The problem is that the boot procedure
-  can vary significantly between distributions, and even within
-  a distribution, they are a moving target.
-
-  This package evolves slower than the Bacula source code,
-  so there may not always be a new release of the rescue package when
-  making minor updates to the Bacula code. For example, when releasing
-  Bacula version 3.0.3, the rescue package may still be at a prior
-  version if there were no updates.
-
-\item [winbacula-3.0.3.exe]
+
+\item [win32bacula-5.0.0.exe]
   This file is the 32 bit Windows installer for installing
   the Windows client (File daemon) on a Windows machine.
-  This client will also run on 64 bit Windows machines.
-  Beginning with Bacula version 1.39.20, this executable will
-  also optionally load the Win32 Director and the Win32 
-  Storage daemon.
+  This client will also run on 64 bit Windows machines, but
+  VSS support is not available if you are running a 64 bit
+  version of Windows.  This installer installs only the FD, 
+  the Director and Storage daemon are not included.
+
 
-\item [win64bacula-3.0.3.exe]
+\item [win64bacula-5.0.0.exe]
   This file is the 64 bit Windows installer for installing
   the Windows client (File daemon) on a Windows machine.
   This client will only run on 64 bit Windows OS machines.
@@ -272,7 +263,7 @@ for compatibility with Bacula.
 Typically, a dependency package will be named {\bf depkgs-ddMMMyy.tar.gz}
 where {\bf dd} is the day we release it, {\bf MMM}
 is the abbreviated month (e.g. Jan), and {\bf yy} is the year. An actual
-example is: {\bf depkgs-24Jul09.tar.gz}. To install and build this package (if
+example is: {\bf depkgs-18Dec.tar.gz}. To install and build this package (if
 needed), you do the following: 
 
 \begin{enumerate}
@@ -317,6 +308,47 @@ You should build the packages that you will require in {\bf depkgs} a
 prior to configuring and building Bacula, since Bacula will need
 them during the build process. 
 
+Note, the {\bf depkgs-qt} package is required for building bat, because 
+bat is currently built with Qt version 4.3.4.  It can be built with other
+Qt versions, but that almost always creates problems or introduces
+instabilities.
+
+You can build the depkgs-qt with the following:
+
+\footnotesize
+\begin{verbatim}
+cd bacula
+tar xfvz depkgs-qt-28Jul09.tar.gz
+cd depkgs-qt
+make qt4
+source qt4-path
+\end{verbatim}
+\normalsize
+
+Doing the {\bf source qt4-path} defines the following environment
+variables:
+
+\footnotesize
+\begin{verbatim}
+QTDIR
+QTLIB
+QTINC
+\end{verbatim}
+\normalsize
+
+Each one should point to a specific location in the depkgs-qt package
+that you loaded.  It also puts the depkgs-qt/qt4/bin directory
+on your path before all other directories.  This ensures that
+the bat build will use your Qt 4.3.4 library rather than any that 
+might be on your system.
+
+Before running your Bacula build, please make sure that
+{\bf qmake-qt4} is not on your path.  If it is please rename it. If
+you don't do this, Bacula will attempt to build with any Qt4 package
+installed on your system rather than the one you just built.
+If you logoff and log back in, you must re-source the depkgs-qt/qt4-patch
+file before attempting to rebuild the bat part of Bacula.
+
 For more information on the {\bf depkgs-qt} package, please read the
 INSTALL file in the main directory of that package. If you are going to 
 build Qt4 using {\bf depkgs-qt}, you must source the {\bf qt4-paths} file
@@ -514,12 +546,12 @@ For example, on Fedora, Red Hat, or SuSE one could use the following:
 \begin{verbatim}
 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 \
+    --sbindir=/opt/bacula/bin \
+    --sysconfdir=/opt/bacula/etc \
+    --with-pid-dir=/var/run \
+    --with-subsys-dir=/var/run \
     --with-mysql \
-    --with-working-dir=$HOME/bacula/bin/working \
+    --with-working-dir=/opt/bacula/working \
     --with-dump-email=$USER
 \end{verbatim}
 \normalsize
@@ -534,16 +566,16 @@ the {\bf examples} directory. This script contains the statements that you
 would normally use, and each developer/user may modify them to suit his needs.
 You should find additional useful examples in this directory as well. 
 
-The {\bf \verb:--:enable-conio} or {\bf \verb:--:enable-readline} options are useful because
-they provide a command line history and editing capability for the Console
-program. If you have included either option in the build, either the {\bf
-termcap} or the {\bf ncurses} package will be needed to link. On most
-systems, including Red Hat and SuSE, you should include the ncurses package.
-If Bacula's configure process finds the ncurses libraries, it will use
-those rather than the termcap library.
-On some systems, such as SuSE, the termcap library is not in the standard
-library directory.  As a consequence, the option may be disabled or you may
-get an error message such as:
+The {\bf \verb:--:enable-conio} or {\bf \verb:--:enable-readline} options are
+useful because they provide a command line history, editing capability for the
+Console program and tab completion on various option. If you have included
+either option in the build, either the {\bf termcap} or the {\bf ncurses}
+package will be needed to link. On most systems, including Red Hat and SuSE,
+you should include the ncurses package.  If Bacula's configure process finds
+the ncurses libraries, it will use those rather than the termcap library.  On
+some systems, such as SuSE, the termcap library is not in the standard library
+directory.  As a consequence, the option may be disabled or you may get an
+error message such as:
 
 \footnotesize
 \begin{verbatim}
@@ -562,12 +594,11 @@ export LDFLAGS="-L/usr/lib/termcap"
 \end{verbatim}
 \normalsize
 
-The same library requirements apply if you wish to use the readline
-subroutines for command line editing and history or
-if you are using a MySQL library that requires encryption. If you need encryption,
-you can either export the appropriate additional library options as shown
-above or, alternatively, you can include them directly on the ./configure line
-as in: 
+The same library requirements apply if you wish to use the readline subroutines
+for command line editing, history and tab completion or if you are using a
+MySQL library that requires encryption. If you need encryption, you can either
+export the appropriate additional library options as shown above or,
+alternatively, you can include them directly on the ./configure line as in:
 
 \footnotesize
 \begin{verbatim}
@@ -603,25 +634,32 @@ because SQLite is compiled into Bacula an requires no administration. It
 performs well and is suitable for small to medium sized installations (maximum
 10-20 machines). However, we should note that a number of users have
 had unexplained database corruption with SQLite. For that reason, we
-recommend that you install either MySQL or PostgreSQL for production
+recommend that you install either PostgreSQL or MySQL for production
 work.
 
-If you wish to use MySQL as the Bacula catalog, please see the 
-\ilink{Installing and Configuring MySQL}{MySqlChapter} chapter of
-this manual. You will need to install MySQL prior to continuing with the
+If you wish to use MySQL as the Bacula catalog, please see the
+\ilink{Installing and Configuring MySQL}{MySqlChapter} chapter of this
+manual. You will need to install MySQL prior to continuing with the
 configuration of Bacula. MySQL is a high quality database that is very
-efficient and is suitable for any sized installation. It is slightly more
-complicated than SQLite to setup and administer because it has a number of
-sophisticated features such as userids and passwords. It runs as a separate
-process, is truly professional and can manage a database of any size. 
-
-If you wish to use PostgreSQL as the Bacula catalog, please see the 
-\ilink{Installing and Configuring PostgreSQL}{PostgreSqlChapter}
-chapter of this manual. You will need to install PostgreSQL prior to
-continuing with the configuration of Bacula. PostgreSQL is very similar to
-MySQL, though it tends to be slightly more SQL92 compliant and has many more
-advanced features such as transactions, stored procedures, and the such. It
-requires a certain knowledge to install and maintain. 
+efficient and is suitable for small and medium sized installation (up to
+2,000,000 files per job). It is slightly more complicated than SQLite to setup
+and administer because it has a number of sophisticated features such as
+userids and passwords. It runs as a separate process, is truly professional and
+can manage a database of any size.
+
+If you wish to use PostgreSQL as the Bacula catalog, please see the
+\ilink{Installing and Configuring PostgreSQL}{PostgreSqlChapter} chapter of
+this manual. You will need to install PostgreSQL prior to continuing with the
+configuration of Bacula. PostgreSQL is very similar to MySQL, though it tends
+to be slightly more SQL92 compliant and has many more advanced features such as
+transactions, stored procedures, and the such. It requires a certain knowledge
+to install and maintain. PostgreSQL is suitable for any sized installation
+(some sites have much more than 1 billion objects in the Catalog). Bacula uses
+many optimized PostgreSQL functions, and can run more than 10 time faster on
+jobs having millions of files than MySQL (Specially in during restore, accurate
+mode, bvfs queries and when the database server is not on the same host than
+the Director). It's possible to switch from MySQL/SQLite to PostgreSQL, but it
+requires some DBA knowledge.
 
 If you wish to use SQLite as the Bacula catalog, please see 
 \ilink{Installing and Configuring SQLite}{SqlLiteChapter} chapter of
@@ -664,7 +702,10 @@ customize your installation.
    This option is meant to allow you to direct where the architecture
    independent files should be placed.  However, we find this a somewhat
    vague concept, and so we have not implemented this option other than
-   what ./configure does by default.  As a consequence, we suggest that
+   to use any explicit prefix that you may define.  If you do not
+   explicitly specify a prefix, Bacula's configure routine will not use
+   the default value that ./configure --help prints.
+   As a consequence, we suggest that
    you avoid it. We have provided options that allow you to explicitly
    specify the directories for each of the major categories of installation
    files.
@@ -676,7 +717,9 @@ customize your installation.
 \item [ {-}{\-}sysconfdir=\lt{}config-path\gt{}]
    \index[general]{{-}{\-}sysconfdir}
    Defines where the Bacula configuration files should be placed during a
-   {\bf make install} command.
+   {\bf make install} command.  Note, for security reasons,
+   this directory should be unique to Bacula and not read/writable by
+   any other user/group than Bacula is running under.
 
 \item [ {-}{\-}mandir=\lt{}path\gt{}]
    \index[general]{{-}{\-}mandir}
@@ -774,12 +817,6 @@ $ nm /usr/local/lib/libpq.a | grep mutex
 
    Bacula always links to the thread safe MySQL libraries.
 
-   As a default, Bacula runs SQLite3 with {\bf PRAGMA synchronous=OFF}
-   because it improves performance by more than 30 times. However, it 
-   increases the possibility of a corrupted database. If you want more
-   security, please modify src/version.h appropriately (it should be
-   obvious when you look at the file).
-
    Running with Batch Insert turned on is recommended because it can
    significantly improve attribute insertion times. However, it does 
    put a significantly larger part of the work on your SQL engine, so
@@ -790,20 +827,13 @@ $ nm /usr/local/lib/libpq.a | grep mutex
    want to increase the memory available to your SQL engine to further
    improve performance during Batch Inserts.
 
-\item [ {-}{\-}enable-gnome ]
-   \index[general]{{-}{\-}enable-gnome}
-   If you have GNOME installed on your computer including the
-   GNOME development libraries, and you want to use the
-   GNOME GUI Console interface to Bacula, you must specify this option.
-   Doing so will build everything in the {\bf src/gnome2-console} directory.
-
 \item [ {-}{\-}enable-bwx-console ]
    \index[general]{{-}{\-}enable-bwx-console}
    If you have wxWidgets installed on your computer and you want to use the
    wxWidgets GUI Console interface to Bacula, you must specify this option.
    Doing so will build everything in the {\bf src/wx-console} directory.
    This could also be useful to users who want a GUI Console and don't want
-   to install GNOME, as wxWidgets can work with GTK+, Motif or even X11
+   to install QT, as wxWidgets can work with GTK+, Motif or even X11
    libraries.
 
 \item [ {-}{\-}enable-tray-monitor ]
@@ -887,10 +917,10 @@ $ nm /usr/local/lib/libpq.a | grep mutex
 
 \item [ {-}{\-}enable-static-cons]
    \index[general]{{-}{\-}enable-static-cons}
-   This option causes the make process to build a {\bf static-console} and
-   a {\bf static-gnome-console} in addition to the standard console.  This
-   static version will include statically linked libraries and could be
-   useful during a Bare Metal recovery.
+   This option causes the make process to build a {\bf static-console} in
+   addition to the standard console.  This static version will include
+   statically linked libraries and could be useful during a Bare Metal
+   recovery.
 
    When linking a static binary, the linker needs the static versions
    of all the libraries that are used, so frequently users will 
@@ -997,7 +1027,9 @@ $ nm /usr/local/lib/libpq.a | grep mutex
    Bacula or if you want to use File Daemon PKI data encryption.
    Normally, the {\bf path} specification is not necessary since
    the configuration searches for the OpenSSL libraries in standard system
-   locations. Enabling OpenSSL in Bacula permits secure communications
+   locations. However, you must ensure that all the libraries are
+   loaded including {\bf libssl-dev} or the equivalent on your
+   system. Enabling OpenSSL in Bacula permits secure communications
    between the daemons and/or data encryption in the File daemon.
    For more information on using TLS, please see the
    \ilink{Bacula TLS -- Communications Encryption}{CommEncryption} chapter
@@ -1005,6 +1037,10 @@ $ nm /usr/local/lib/libpq.a | grep mutex
    For more information on using PKI data encryption, please see the
    \ilink{Bacula PKI -- Data Encryption}{DataEncryption}
    chapter of this manual.
+              
+   If you get errors linking, you need to load the development libraries,
+   or you need to disable SSL by setting without-openssl.
+
 
 \item [ {-}{\-}with-python=\lt{}path\gt{}]
    \index[general]{{-}{\-}with-python}
@@ -1087,8 +1123,8 @@ $ nm /usr/local/lib/libpq.a | grep mutex
    The working directory  is not automatically created by the install process, so
    you  must ensure that it exists before using Bacula for the  first time. 
 
-\item [ {-}{\-}with-base-port=\lt{}port=number\gt{}]
-   \index[general]{{-}{\-}with-base-port}
+\item [ {-}{\-}with-baseport=\lt{}port=number\gt{}]
+   \index[general]{{-}{\-}with-baseport}
    In order to run,  Bacula needs three TCP/IP ports (one for the Bacula 
    Console, one for the Storage daemon, and one for the File daemon).  The {\bf
    \verb:--:with-baseport} option will automatically assign three  ports beginning at
@@ -1233,12 +1269,11 @@ For most systems, we recommend starting with the following options:
 \begin{verbatim}
 ./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
+  --sbindir=/opt/bacula/bin \
+  --sysconfdir=/opt/bacula/etc \
+  --with-pid-dir=/opt/bacula/working \
+  --with-subsys-dir=/opt/bacula/working \
+  --with-working-dir=/opt/bacula/working
 \end{verbatim}
 \normalsize
 
@@ -1260,15 +1295,15 @@ Using SQLite:
 \begin{verbatim}
  
 CFLAGS="-g -Wall" ./configure \
-  --sbindir=$HOME/bacula/bin \
-  --sysconfdir=$HOME/bacula/bin \
+  --sbindir=/opt/bacula/bin \
+  --sysconfdir=/opt/bacula/etc \
   --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 \
+  --with-working-dir=/opt/bacula/working \
+  --with-pid-dir=/opt/bacula/working \
+  --with-subsys-dir=/opt/bacula/working \
   --enable-bat \
-  --enable-conio
+  --enable-readline
 \end{verbatim}
 \normalsize
 
@@ -1278,19 +1313,20 @@ or
 \begin{verbatim}
  
 CFLAGS="-g -Wall" ./configure \
-  --sbindir=$HOME/bacula/bin \
-  --sysconfdir=$HOME/bacula/bin \
+  --sbindir=/opt/bacula/bin \
+  --sysconfdir=/opt/bacula/etc \
   --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
+  --with-mysql \
+  --with-working-dir=/opt/bacula/working
+  --with-pid-dir=/opt/bacula/working \
+  --with-subsys-dir=/opt/bacula/working
+  --enable-readline
 \end{verbatim}
 \normalsize
 
-or finally, a completely traditional Red Hat Linux install: 
+or finally, a completely traditional Red Hat Linux install,
+which we do not recommend, because it make it harder to
+backup Bacula for disaster recovery purposes:
 
 \footnotesize
 \begin{verbatim}
@@ -1303,7 +1339,7 @@ CFLAGS="-g -Wall" ./configure \
   --with-mysql \
   --with-working-dir=/var/bacula \
   --with-pid-dir=/var/run \
-  --enable-conio
+  --enable-readline
 \end{verbatim}
 \normalsize
 
@@ -1329,21 +1365,16 @@ A typical configuration command might look like:
 \begin{verbatim}
 #!/bin/sh
 CFLAGS="-g" ./configure \
-  --sbindir=$HOME/bacula/bin \
-  --sysconfdir=$HOME/bacula/bin \
-  --with-mysql=$HOME/mysql \
+  --sbindir=/opt/bacula/bin \
+  --sysconfdir=/opt/bacula/etc \
+  --with-mysql \
   --enable-smartalloc \
-  --with-pid-dir=$HOME/bacula/bin/working \
-  --with-subsys-dir=$HOME/bacula/bin/working \
-  --with-working-dir=$HOME/bacula/working
+  --with-pid-dir=/opt/bacula/working \
+  --with-subsys-dir=/opt/bacula/working \
+  --with-working-dir=/opt/bacula/working
 \end{verbatim}
 \normalsize
 
-As mentioned above, the install process will create the sbindir and sysconfdir
-if they do not exist, but it will not automatically create the pid-dir,
-subsys-dir, or working-dir, so you must ensure that they exist before running
-Bacula for the first time.
-
 Note, you may need to install the following packages to build Bacula
 from source:
 \footnotesize
@@ -1359,6 +1390,7 @@ SUNWgccruntime
 SUNWlibgcrypt
 SUNWzlib
 SUNWzlibs
+SUNWreadline
 SUNWbinutilsS
 SUNWGmakeS
 SUNWlibm
@@ -1415,7 +1447,7 @@ To install the binary Win32 version of the File daemon please see the
 \index[general]{One Files Configure Script}
 
 The following script could be used if you want to put everything
-in a single file:
+in a single directory (except for the working directory):
 
 \footnotesize
 \begin{verbatim}
@@ -1426,10 +1458,7 @@ CFLAGS="-g -Wall" \
     --sysconfdir=$HOME/bacula/bin \
     --mandir=$HOME/bacula/bin \
     --enable-smartalloc \
-    --enable-gnome \
     --enable-bat \
-    --enable-bwx-console \
-    --enable-tray-monitor \
     --with-pid-dir=$HOME/bacula/bin/working \
     --with-subsys-dir=$HOME/bacula/bin/working \
     --with-mysql \
@@ -1601,9 +1630,8 @@ going to run it to backup your system.
 
 After doing a {\bf make install} the following files will be installed on your
 system (more or less). The exact files and location (directory) for each file
-depends on your {\bf ./configure} command (e.g. bgnome-console and
-bgnome-console.conf are not installed if you do not configure GNOME. Also, if
-you are using SQLite instead of MySQL, some of the files will be different). 
+depends on your {\bf ./configure} command (e.g. if you are using SQLite instead
+of MySQL, some of the files will be different).
 
 NOTE: it is quite probable that this list is out of date.  But it is a
 starting point.
@@ -1632,8 +1660,6 @@ dbcheck
 delete_catalog_backup
 drop_bacula_tables
 drop_mysql_tables
-bgnome-console
-bgnome-console.conf
 make_bacula_tables
 make_catalog_backup
 make_mysql_tables
@@ -1683,7 +1709,7 @@ System tray has been supported in KDE since version 3.1. To activate it,
 right-click on one of your panels, open the menu {\bf Add}, then {\bf Applet}
 and finally click on {\bf System Tray}. 
 
-\subsection{Other window managers}
+\subsection{Other Window Managers}
 \index[general]{Managers!Other window}
 \index[general]{Other window managers}