]> 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 75f554e7dcdfcb52ee5d8f54852992056ac2083b..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}
@@ -984,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
@@ -992,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}
@@ -1074,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
@@ -1220,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
 
@@ -1247,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
 
@@ -1265,18 +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-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}
@@ -1289,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
 
@@ -1315,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
@@ -1345,6 +1390,7 @@ SUNWgccruntime
 SUNWlibgcrypt
 SUNWzlib
 SUNWzlibs
+SUNWreadline
 SUNWbinutilsS
 SUNWGmakeS
 SUNWlibm
@@ -1401,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}
@@ -1413,8 +1459,6 @@ CFLAGS="-g -Wall" \
     --mandir=$HOME/bacula/bin \
     --enable-smartalloc \
     --enable-bat \
-    --enable-bwx-console \
-    --enable-tray-monitor \
     --with-pid-dir=$HOME/bacula/bin/working \
     --with-subsys-dir=$HOME/bacula/bin/working \
     --with-mysql \
@@ -1665,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}