--- /dev/null
+%%
+%%
+
+\chapter{Installing Bacula from Packages}
+\label{PkgInstallChapter}
+\index[general]{Bacula!Installing from Packages}
+\index[general]{Installing Bacula from Packages}
+
+In general, when you receive the Bacula Enterprise version,
+you will receive it as prebuilt binaries in the packaging
+format that is most suited for your system. For example,
+RedHat and SLES (SuSE) both use rpms, while Debian and Ubuntu
+use debs. Depending on the packaging system, you will receive
+a different number of binary packages with different contents.
+
+Below we explain how to manually install the packages on various
+systems. You will need to adapt the version numbers to the
+version you are actually using. If you use one our package
+repository, the commands you enter will much simpler and you
+will not need to know version names or how to satisfy dependencies
+on other packages that Bacula needs (e.g. postgresql) as they
+will automatically handled by the package manager.
+
+\section{Installing RPM Packages}
+\index[general]{Installing RPM Packages}
+
+In general, you should get the binary packages from your
+download area on www.baculasystems.com. You can either download
+what you need or setup a repository pointing to the download
+area that will allow you to use your installer program
+such as yum to ensure that all the dependencies a met.
+
+\subsection{Installing Using Yum}
+\index[general]{Installing Using Yum}
+
+Create the file /etc/yum.repos.d/Bacula-Enterprise.repo which
+should contain:
+
+\begin{lstlisting}
+[Bacula-Enterprise]
+name = Red Hat Enterprise - Bacula-Enterprise
+baseurl = https://www.baculasystems.com/dl/<xxxx>/rpms/bin/6.4.0/rhel6-64/
+enabled = 1
+protect = 0
+gpgcheck = 0
+
+[Bacula-Enterprise-bweb]
+name = Red Hat Enterprise - BWeb Management Suite for BEE
+baseurl = https://www.baculasystems.com/dl/<xxxx>/rpms/bweb/6.4.0/rhel6-64/
+enabled = 1
+protect = 0
+gpgcheck = 0
+
+[Bacula-Enterprise-dag]
+name = Red Hat Enterprise - Bacula Systems dag for BWeb
+baseurl = https://www.baculasystems.com/dl/DAG/rhel6-64/
+enabled = 1
+protect = 0
+gpgcheck = 0
+\end{lstlisting}
+
+Please replace the <xxxx> with the name of the last part
+your download area that was given to you in your Welcome Package.
+
+Also please ensure that you adapt the Bacula version and
+the architecture (platform) to correspond to your system.
+
+If you have not previously installed the PostgreSQL server, do
+so with:
+
+\begin{lstlisting}
+yum install postgresql-server
+\end{lstlisting}
+
+Then install the Bacula postgreSQL driver with:
+
+\begin{lstlisting}
+yum install bacula-enterprise-postgresql
+\end{lstlisting}
+
+If this is the first time you have installed the PostgreSQL
+server, you will need to do the following:
+
+\begin{lstlisting}
+service postgresql initdb
+chkconfig postgresql on
+service postgresql restart
+su postgres
+/opt/bacula/scripts/create_postgresql_database
+/opt/bacula/scripts/make_postgresql_tables
+/opt/bacula/scripts/grant_postgresql_privileges
+exit
+service postgresql restart
+/opt/bacula/scripts/bacula restart
+\end{lstlisting}
+
+
+If you want to install Bat, you will also want to do:
+
+\begin{lstlisting}
+\yum install bacula-enterprise-bat
+\end{lstlisting}
+
+If you wish to install BWeb, please ask for
+the Bacula Enterprise White Paper for the BWeb
+package.
+
+
+
+\subsection{Manually Installing RPM Packages}
+\index[general]{Manually Installing RPM Packages}
+Please not that when installing by hand, we give you
+general instructions below, but you must manually
+adapt the version numbers (6.4.0 ...) and the release
+numbers (rh4, rh5, rh6, ...) to correspond to what
+you are installing.
+
+Assuming you will download the binaries to your machine,
+first, transfer the binary packages you need to your
+RedHat or SuSE machine. For example:
+
+\begin{lstlisting}
+bacula-enterprise-bat-6.4.0-1.rh6.x86_64.rpm
+bacula-enterprise-client-6.4.0-1.rh6.x86_64.rpm
+bacula-enterprise-libs-6.4.0-1.rh6.x86_64.rpm
+\end{lstlisting}
+
+and one or the other of the following two:
+\begin{lstlisting}
+bacula-enterprise-mysql-6.4.0-1.rh6.x86_64.rpm
+bacula-enterprise-postgresql-6.4.0-1.rh6.x86_64.rpm
+\end{lstlisting}
+
+and if you are going to update the database:
+
+\begin{lstlisting}
+bacula-enterprise-updatedb-6.4.0-1.rh6.rpm
+\end{lstlisting}
+
+In addition, if you have any plugins, please download
+the rpms for them.
+
+To install generally if you have not previously installed
+a Bacula Enterprise binary, you will want to save your old
+configuration files somewhere and then remove the old packages
+with:
+
+\begin{lstlisting}
+rpm -e <old-package-name> ...
+\end{lstlisting}
+
+If you have previously used a Bacula Enterprise binary, you
+do not need to remove the packages, you can simply install or
+upgrade the new ones with:
+
+\begin{lstlisting}
+rpm -Uhv bacula-enterprise-bat-6.4.0-1.rh6.x86_64.rpm \
+bacula-enterprise-client-6.4.0-1.rh6.x86_64.rpm \
+bacula-enterprise-libs-6.4.0-1.rh6.x86_64.rpm \
+...
+\end{lstlisting}
+
+That is you can put them all on one line or multiple lines if terminated
+with a backslash character (\verb+\+). There must be no space after the
+backslash.
+
+\section{Installing DEBs}
+\index[general]{Installing BEBs}
+In general, you should get the binary packages from your
+download area on www.baculasystems.com. You can either download
+what you need or setup a repository pointing to the download
+area that will allow you to use your installer program
+such as apt to ensure that all the dependencies a met.
+
+\section{Installing Using apt}
+\index[general]{Installing Using apt}
+In order to use the Bacula Systems apt repository, you need to install
+the HTTPS backend for APT.
+
+\begin{lstlisting}
+ apt-get install apt-transport-https
+\end{lstlisting}
+
+Then, you need to download and install the gpg signature that validates packages
+
+\begin{lstlisting}
+ wget https://www.baculasystems.com/dl/<xxx>/BaculaSystems-Public-Signature.asc
+ apt-key add BaculaSystems-Public-Signature.asc
+\end{lstlisting}
+
+Please replace the <xxxx> with the name of the last part
+your download area that was given to you in your Welcome Package.
+
+Add to your /etc/apt/source.list file the following entries:
+
+\begin{lstlisting}
+ # Bacula Enterprise
+ deb https://www.baculasystems.com/dl/<xxx>/debs/bin/6.4.0/squeeze-64/ squeeze main
+ # Bacula Enterprise Bweb Management Suite (if subscribed)
+ deb https://www.baculasystems.com/dl/<xxx>/debs/bweb/6.4.0/squeeze-64/ squeeze bweb
+\end{lstlisting}
+
+
+Also please ensure that you adapt the Bacula version and the architecture
+(platform) to correspond to your system.
+
+\begin{lstlisting}
+ debian 7 | wheezy
+ debian 6 | squeeze
+ debian 5 | lenny
+ ubuntu 12.04 | precise
+ ubuntu 10.04 | lucid
+\end{lstlisting}
+
+Once done, you can update the repository list with the following command.
+
+\begin{lstlisting}
+ apt-get update
+\end{lstlisting}
+
+If you have not previously install the PostgreSQL server, do
+so with:
+
+\begin{lstlisting}
+apt-get install postgresql dbconfig-common
+\end{lstlisting}
+
+Then install the Bacula with postgreSQL driver with:
+
+\begin{lstlisting}
+apt-get install bacula-enterprise-postgresql
+\end{lstlisting}
+
+If you want to install Bat, you will also want to do:
+
+\begin{lstlisting}
+apt-get install bacula-enterprise-bat
+\end{lstlisting}
+
+
+\section{Manually Installing DEBs}
+Assuming you will download the binaries to your machine,
+first, transfer the binary packages you need to your
+Debian or Ubuntu machine. For example:
+
+\begin{lstlisting}
+bacula-enterprise-client_6.4.0-1_amd64.deb
+bacula-enterprise-common_6.4.0-1_amd64.deb
+bacula-enterprise-console-qt_6.4.0-1_amd64.deb
+bacula-enterprise-console_6.4.0-1_amd64.deb
+\end{lstlisting}
+
+and one of the following two:
+
+\begin{lstlisting}
+bacula-enterprise-mysql_6.4.0-1_amd64.deb
+bacula-enterprise-postgresql_6.4.0-1_amd64.deb
+\end{lstlisting}
+
+In addition, if you have any plugins, please download
+the debs for them.
+
+To install generally if you have not previously installed
+a Bacula Enterprise binary, you will want to save your old
+configuration files somewhere and then remove the old packages
+with:
+
+\begin{lstlisting}
+dpkg -r <old-package-name> ...
+\end{lstlisting}
+
+If you have previously used a Bacula Enterprise binary, you
+do not need to remove the packages, you can simply install or
+upgrade the new ones with:
+
+\begin{lstlisting}
+dpkg -i bacula-enterprise-client_6.4.0-1_amd64.deb \
+ bacula-enterprise-common_6.4.0-1_amd64.deb \
+ bacula-enterprise-console_6.4.0-1_amd64.deb \
+ bacula-enterprise-postgresql_6.4.0-1_amd64.deb
+\end{lstlisting}
+
+That is you can put them all on one line or multiple lines if terminated
+with a backslash character (\verb+\+). There must be no space after the
+backslash.
+
+If some dependencies are missing, you can install them automatically using:
+
+\begin{lstlisting}
+ apt-get -f install
+\end{lstlisting}
+
+\section{Installing FreeBSD Packages}
+\index[general]{Installing FreeBSD Packages}
+First, transfer the binary packages you need including
+the post-install scripts to your FreeBSD machine. For
+example:
+
+\begin{lstlisting}
+ bacula-enterprise-fd.6.2.0.tbz
+ post-install.fd
+ bacula-enterprise-sfd.6.2.0.tbz
+ post-install.sfd
+ bacula-enterprise-sd-6.2.0.tbz
+ post-install.sd
+\end{lstlisting}
+
+Note, if you want only the FD or the SD, simply
+skip the appropriate commands.
+
+The package bacula-enterprise-fd was previously called
+bacula-enterprise-client, so when upgrading, we recommend
+that you save your prior bacula-fd.conf file, remove
+the old package and install the new package.
+
+The package bacula-enterprise-sfd is a static version
+of the File daemon. We have not tested, but it should
+work on virtually any version of FreeBSD. If you use
+it, please let us know. Please note, if you install the
+bacula-enterprise-fd package you will not need the
+bacula-enterprise-sfd package and vise-versa.
+
+Then as root execute the following:
+
+\begin{lstlisting}
+ pkg_add bacula-enterprise-fd-6.2.0.tbz
+ ./post-install.fd
+ pkg_add bacula-enterprise-sd-6.2.0.tbz
+ ./post-install.sd
+\end{lstlisting}
+
+These need to be done only once. The services
+are not initially started, but the service scripts
+will be installed.
+
+You must then edit the Bacula configuration scripts
+that are in /opt/bacula/etc/bacula-fd.conf and
+/opt/bacula/etc/bacula-sd.conf
+
+You can then start the services with:
+
+\begin{lstlisting}
+service bacula_fd start
+service bacula_sd start
+\end{lstlisting}
+
+They can be removed with:
+
+\begin{lstlisting}
+ pkg_delete bacula-enterprise-fd-6.2.0
+ pkg_delete bacula-enterprise-sd-6.2.0
+\end{lstlisting}
+
+Note, the the client from version priort to 6.2.0 can
+be removed with:
+
+\begin{lstlisting}
+ pkg_delete bacula-enterprise-fd-<version -- e.g. 6.0.6>
+\end{lstlisting}
+
+The removal process may generate some error messages
+concering missing files or the bacula user. Generally
+these can be ignored.
+
+\section{Installing Solaris Sparc Packages}
+\index[general]{Installing Solaris Sparc Packages}
+Note: For Oracle Solaris 11 Intel 64 bit, please see the next section.
+
+Please see below for how to install dependencies.
+
+Our binaries come in tar.gz'ed version of a pkg directory.
+
+The tar.gz are a tar of a directory which is compressed.
+It can either be decompressed with gunzip then detarred, or can be directly
+be detarred with the GNU tar (gtar).
+
+You can add packages with:
+\begin{lstlisting}
+pkgadd -d <dir> for a pkg dir
+\end{lstlisting}
+
+You can remove them with:
+\begin{lstlisting}
+pkgrm name
+\end{lstlisting}
+
+And you can get information about them with:
+\begin{lstlisting}
+pkginfo name
+\end{lstlisting}
+
+Remove all previous bacula packages.
+\begin{lstlisting}
+ - # pkginfo | grep BEEbacula
+ application BEEbaculadir Bacula Enterprise Director
+ application BEEbaculafd Bacula Enterprise File Daemon
+ application BEEbaculalibs Bacula Enterprise Shared Libs
+ application BEEbaculasd Bacula Enterprise Storage Daemon
+ application BEEbaculasql Bacula Enterprise SQL Libraries
+ - # pkgrm BEEbaculadir BEEbaculasd BEEbaculafd BEEbaculasql BEEbaculalibs
+\end{lstlisting}
+
+Install the new packages as needed (if not already installed).
+
+ cd to the place where are the packages, untar them :
+
+\begin{lstlisting}
+ tar -zxf bacula-enterprise-libs-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-sql-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-dir-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-fd-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-sd-6.2.1.i86.sol11.pkg.tar.gz
+\end{lstlisting}
+
+Install them using pkgadd :
+
+\begin{lstlisting}
+ - For a File Daemon
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculafd
+ - For a Storage Daemon
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculasql BEEbaculasd
+ - For a Director
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculasql BEEbaculadir
+\end{lstlisting}
+
+(When installing multiple daemons on one server only install the package once.
+ You can always use pkginfo | grep BEE to see what packages are installed.)
+
+Setup PostgreSQL on Solaris
+\begin{lstlisting}
+ - Change to user postgres
+ - # su - postgres
+ - Initialize the database
+ - # /usr/postgres/9.2/bin/initdb -D /var/postgres/9.2/data
+ - Edit /var/postgres/9.2/data/postgresql.conf
+ /var/postgres/9.2/data/pg_hba.conf
+ /var/postgres/9.2/data/pg_ident.conf
+ - Logout as postgres user
+ - # exit
+ - Enable the SMF service
+ - # svcadm enable svc:/application/database/postgresql:default
+\end{lstlisting}
+
+Setup bacula-fd on Solaris
+\begin{lstlisting}
+ - Edit /etc/opt/bacula/bacula-fd.conf
+ - Enable the SMF service (either choose the readonly instance or default one)
+ - # svcadm enable svc:/application/backup/bacula-fd:default
+ - # svcadm enable svc:/application/backup/bacula-fd:readonly
+ (The readonly instance only allows the fd to perform backups no restores and
+ runs a a non-priviledged user. The default instance runs as root and allows
+ all operations.)
+\end{lstlisting}
+
+Setup bacula-sd on Solaris
+\begin{lstlisting}
+ - Edit /etc/opt/bacula/bacula-sd.conf
+ - Make sure all tape drives are accessable as user bacula group bacula
+ - Test your configuration
+ - # su - bacula -c '/opt/bacula/bin/amd64/bacula-sd -t'
+ - Enable the SMF service
+ - # svcadm enable svc:/application/backup/bacula-sd:default
+\end{lstlisting}
+
+Setup bacula-dir on Solaris
+\begin{lstlisting}
+ - Make sure the database schema is loaded.
+ - When you run the database on the same instance as the dir you can perform
+ the following steps:
+ - # su - postgres
+ - # /opt/bacula/scripts/create_bacula_database
+ - # /opt/bacula/scripts/make_bacula_tables
+ - # /opt/bacula/scripts/grant_bacula_privileges
+ - Logout as postgres user
+ - # exit
+ - Test your configuration
+ - # su - bacula -c '/opt/bacula/bin/amd64/bacula-dir -t'
+ - Enable the SMF service
+ - # svcadm enable svc:/application/backup/bacula-dir:default
+\end{lstlisting}
+
+\subsection{Installing Solaris Sparc Dependencies}
+How to install dependencies for Solaris from CSW (if needed)
+
+To install Solaris package with pkg-get, you can use
+\begin{lstlisting}
+ pkgadd -d http://get.opencsw.org/now
+
+ http://www.opencsw.org/get-it/
+\end{lstlisting}
+
+Detailed instructions are available on
+\begin{lstlisting}
+http://www.opencsw.org/manual/for-administrators/getting-started.html
+\end{lstlisting}
+
+For a list of available packages use:
+\begin{lstlisting}
+/opt/csw/bin/pkgutil -l
+\end{lstlisting}
+
+To install a package, just use the following command
+\begin{lstlisting}
+/opt/csw/bin/pkgutil -y -i <package name>
+\end{lstlisting}
+
+Bacula packages on Solaris 11 depend on :
+
+\begin{lstlisting}
+- CSWpython
+- CSWopenssl
+- CSWlibfbopenssl0
+- CSWreadline
+\end{lstlisting}
+
+\subsection{How to install Postgresql}
+
+* You can get an excellent PostgreSQL distribution for Solaris directly
+on http://www.postgresql.org
+
+For example, the version 9.2 can be downloaded for Solaris 32/64 Intel:
+\begin{lstlisting}
+http://www.postgresql.org/ftp/binary/v9.2.0/solaris/solaris11/i386/
+\end{lstlisting}
+
+You may have to make the libpq available for Bacula, for that, just
+create a symlink to the libpq.so object in a standard library path.
+
+\begin{lstlisting}
+ln -s /usr/postgres/9.2/lib/64/libpq.so /opt/bacula/lib/amd64/
+ln -s /usr/postgres/9.2/lib/libpq.so /opt/bacula/lib/
+\end{lstlisting}
+
+* You can get PostgreSQL from opencsw but Postgres 9.2 is not available
+in OpenCSW repository.
+
+The latest version available in OpenCSW is Postgres 9.1.
+
+\section{Installing Intel Solaris 10 Packages}
+\index[general]{Installing Intel Solaris 10 Packages}
+The installation of Intel Solaris 10 packages is very similar
+to how it is done on Solaris Sparc.
+
+Our are in pkg format :
+
+Our repository contain tar.gz'ed version of the pkg
+
+The tar.gz are a tar of a directory which is compressed.
+It can either be decompressed with gunzip then detarred, or can be directly
+be detarred with the GNU tar (gtar).
+
+You can add packages with:
+\begin{lstlisting}
+pkgadd -d <dir> for a pkg dir
+\end{lstlisting}
+
+You can remove them with:
+\begin{lstlisting}
+pkgrm name
+\end{lstlisting}
+
+And you can get information about them with:
+\begin{lstlisting}
+pkginfo name
+\end{lstlisting}
+
+Remove all previous bacula packages.
+\begin{lstlisting}
+ - # pkginfo | grep BEEbacula
+ application BEEbaculadir Bacula Enterprise Director
+ application BEEbaculafd Bacula Enterprise File Daemon
+ application BEEbaculalibs Bacula Enterprise Shared Libs
+ application BEEbaculasd Bacula Enterprise Storage Daemon
+ application BEEbaculasql Bacula Enterprise SQL files
+ - # pkgrm BEEbaculadir BEEbaculasd BEEbaculafd BEEbaculasql BEEbaculalibs
+\end{lstlisting}
+
+Install the new packages as needed (if not already installed).
+
+ cd to the place where are the packages, untar them :
+
+\begin{lstlisting}
+ gtar -zxf bacula-enterprise-libs-6.2.1.i86.sol10.pkg.tar.gz
+ gtar -zxf bacula-enterprise-sql-6.2.1.i86.sol10.pkg.tar.gz
+ gtar -zxf bacula-enterprise-dir-6.2.1.i86.sol10.pkg.tar.gz
+ gtar -zxf bacula-enterprise-fd-6.2.1.i86.sol10.pkg.tar.gz
+ gtar -zxf bacula-enterprise-sd-6.2.1.i86.sol10.pkg.tar.gz
+\end{lstlisting}
+
+Install them using pkgadd :
+
+There is ownership conflict during the install, continue the install and follow
+ the instruction below to correct them
+\begin{lstlisting}
+ - For a File Daemon
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculafd
+ - For a Storage Daemon
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculasd
+ - For a Director
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculasql BEEbaculadir
+\end{lstlisting}
+
+(When installing multiple daemons on one server only install the package once.
+ You can always use pkginfo | grep BEE to see what packages are installed.)
+
+The postgresql that we have use is the 9.1 from CSW repository (read the howto
+at the end of the file)
+
+\begin{lstlisting}
+ - pkgadd -d http://get.opencsw.org/now
+ - pkgutil -y -i postgresql91
+ - The bacula user need to be able to run pg_dump set the path to do so
+ We used the /etc/rpfile in our case ba adding :
+ export PATH=$PATH:/opt/csw/bin
+ set a link from /opt/csw/bin/pg_dump91 to /opt/csw/bin/pg_dump
+\end{lstlisting}
+
+Setup bacula-fd on Solaris
+\begin{lstlisting}
+ - Edit /etc/opt/bacula/bacula-fd.conf
+ - Enable the SMF service (either choose the readonly instance or default one)
+ - # svcadm enable svc:/application/backup/bacula-fd:default
+ - # svcadm enable svc:/application/backup/bacula-fd:readonly
+ (The readonly instance only allows the fd to perform backups no restores and
+ runs a a non-priviledged user. The default instance runs as root and allows
+ all operations.)
+\end{lstlisting}
+
+Setup bacula-sd on Solaris
+\begin{lstlisting}
+ - Edit /etc/opt/bacula/bacula-sd.conf
+ - Make sure all tape drives are accessable as user bacula group bacula
+ - set ownership to bacula on chown bacula:bacula /opt/bacula/archive/
+ - set ownership to bacula on chown bacula:bacula /opt/bacula/var/run
+ - Test your configuration
+ - # su - bacula -c '/opt/bacula/bin/amd64/bacula-sd -t'
+ - Enable the SMF service
+ - # svcadm enable svc:/application/backup/bacula-sd:default
+\end{lstlisting}
+
+Setup bacula-dir on Solaris
+\begin{lstlisting}
+ - Make sure the database schema is loaded.
+ - When you run the database on the same instance as the dir you can perform
+ the following steps:
+ - # su - postgres
+ - # /opt/bacula/scripts/create_bacula_database
+ - # /opt/bacula/scripts/make_bacula_tables
+ - # /opt/bacula/scripts/grant_bacula_privileges
+ - Logout as postgres user
+ - # exit
+ - Make postgres libs management :
+ - # ln -s /opt/csw/lib/64/libpq.so /opt/bacula/lib/amd64/
+ - # ln -s /opt/csw//lib/libpq.so /opt/bacula/lib/
+ - set ownership to bacula for /opt/bacula/var/run and /opt/bacula/archive
+ /opt/bacula/working
+ - # chown bacula:bacula /opt/bacula/var/run /opt/bacula/archive /opt/bacula/working
+
+ - Test your configuration
+ - # su - bacula -c '/opt/bacula/bin/amd64/bacula-dir -t'
+ - Enable the SMF service
+ - # svcadm enable svc:/application/backup/bacula-dir:default
+\end{lstlisting}
+
+\subsection{Installing Dependencies from CSW}
+How to install dependencies for Solaris from CSW (if needed)
+
+To install Solaris package with pkg-get, you can use
+\begin{lstlisting}
+ pkgadd -d http://get.opencsw.org/now
+
+ http://www.opencsw.org/get-it/
+\end{lstlisting}
+
+Detailed instructions are available on
+\begin{lstlisting}
+http://www.opencsw.org/manual/for-administrators/getting-started.html
+\end{lstlisting}
+
+For a list of available packages use:
+\begin{lstlisting}
+/opt/csw/bin/pkgutil -l
+\end{lstlisting}
+
+To install a package, just use the following command
+\begin{lstlisting}
+/opt/csw/bin/pkgutil -y -i <package name>
+\end{lstlisting}
+
+Bacula packages on Solaris 10 depend on:
+
+\begin{lstlisting}
+- CSWpython
+- CSWopenssl
+- CSWlibfbopenssl0
+- CSWreadline
+- CSWPostgresql91
+\end{lstlisting}
+
+\subsection{How to install PostgreSQL}
+How to install Postgresql from Postgressql website (9.2 in not available in CSW)
+
+You can get an excellent PostgreSQL distribution for Solaris directly
+on http://www.postgresql.org
+
+For example, the version 9.2 can be downloaded for Solaris 32/64 Intel:
+\begin{lstlisting}
+http://www.postgresql.org/ftp/binary/v9.2.0/solaris/solaris10/i386/
+\end{lstlisting}
+
+You may have to make the libpq available for Bacula, for that, just
+create a symlink to the libpq.so object in a standard library path.
+
+\begin{lstlisting}
+ln -s /usr/postgres/9.2/lib/64/libpq.so /opt/bacula/lib/amd64/
+ln -s /usr/postgres/9.2/lib/libpq.so /opt/bacula/lib/
+\end{lstlisting}
+
+\section{Installing Intel Solaris 11 Packages}
+\index[general]{Installing Intel Solaris 11 Packages}
+Please see below for how to install dependencies.
+
+Our binaries come as tar.gz'ed version of a pkg directory
+
+The tar.gz are a tar of a directory which is compressed.
+It can either be decompressed with gunzip then detarred, or can be directly
+be detarred with the GNU tar (gtar).
+
+You can add packages with:
+\begin{lstlisting}
+pkgadd -d <dir> for a pkg dir
+\end{lstlisting}
+
+You can remove them with:
+\begin{lstlisting}
+pkgrm name
+\end{lstlisting}
+
+And you can get information about them with:
+\begin{lstlisting}
+pkginfo name
+\end{lstlisting}
+
+Remove all previous bacula packages.
+\begin{lstlisting}
+ - # pkginfo | grep BEEbacula
+ application BEEbaculadir Bacula Enterprise Director
+ application BEEbaculafd Bacula Enterprise File Daemon
+ application BEEbaculalibs Bacula Enterprise Shared Libs
+ application BEEbaculasd Bacula Enterprise Storage Daemon
+ application BEEbaculasql Bacula Enterprise SQL Libraries
+ - # pkgrm BEEbaculadir BEEbaculasd BEEbaculafd BEEbaculasql BEEbaculalibs
+\end{lstlisting}
+
+Install the new packages as needed (if not already installed).
+
+ cd to the place where are the packages, untar them :
+
+\begin{lstlisting}
+ tar -zxf bacula-enterprise-libs-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-sql-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-dir-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-fd-6.2.1.i86.sol11.pkg.tar.gz
+ tar -zxf bacula-enterprise-sd-6.2.1.i86.sol11.pkg.tar.gz
+\end{lstlisting}
+
+Install them using pkgadd :
+
+\begin{lstlisting}
+ - For a File Daemon
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculafd
+ - For a Storage Daemon
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculasql BEEbaculasd
+ - For a Director
+ - # pkgadd -d . BEEbaculalibs
+ - # pkgadd -d . BEEbaculasql BEEbaculadir
+\end{lstlisting}
+
+(When installing multiple daemons on one server only install the package once.
+ You can always use pkginfo | grep BEE to see what packages are installed.)
+
+Setup postgresql on Solaris
+\begin{lstlisting}
+ - Change to user postgres
+ - # su - postgres
+ - Initialize the database
+ - # /usr/postgres/9.2/bin/initdb -D /var/postgres/9.2/data
+ - Edit /var/postgres/9.2/data/postgresql.conf
+ /var/postgres/9.2/data/pg_hba.conf
+ /var/postgres/9.2/data/pg_ident.conf
+ - Logout as postgres user
+ - # exit
+ - Enable the SMF service
+ - # svcadm enable svc:/application/database/postgresql:default
+\end{lstlisting}
+
+Setup bacula-fd on Solaris
+\begin{lstlisting}
+ - Edit /etc/opt/bacula/bacula-fd.conf
+ - Enable the SMF service (either choose the readonly instance or default one)
+ - # svcadm enable svc:/application/backup/bacula-fd:default
+ - # svcadm enable svc:/application/backup/bacula-fd:readonly
+ (The readonly instance only allows the fd to perform backups no restores and
+ runs a a non-priviledged user. The default instance runs as root and allows
+ all operations.)
+\end{lstlisting}
+
+Setup bacula-sd on Solaris
+\begin{lstlisting}
+ - Edit /etc/opt/bacula/bacula-sd.conf
+ - Make sure all tape drives are accessable as user bacula group bacula
+ - Test your configuration
+ - # su - bacula -c '/opt/bacula/bin/amd64/bacula-sd -t'
+ - Enable the SMF service
+ - # svcadm enable svc:/application/backup/bacula-sd:default
+\end{lstlisting}
+
+Setup bacula-dir on Solaris
+\begin{lstlisting}
+ - Make sure the database schema is loaded.
+ - When you run the database on the same instance as the dir you can perform
+ the following steps:
+ - # su - postgres
+ - # /opt/bacula/scripts/create_bacula_database
+ - # /opt/bacula/scripts/make_bacula_tables
+ - # /opt/bacula/scripts/grant_bacula_privileges
+ - Logout as postgres user
+ - # exit
+ - Test your configuration
+ - # su - bacula -c '/opt/bacula/bin/amd64/bacula-dir -t'
+ - Enable the SMF service
+ - # svcadm enable svc:/application/backup/bacula-dir:default
+\end{lstlisting}
+
+\subsection{Installing Dependencies}
+How to install dependencies for Solaris from CSW (if needed)
+
+To install Solaris package with pkg-get, you can use
+\begin{lstlisting}
+ pkgadd -d http://get.opencsw.org/now
+
+ http://www.opencsw.org/get-it/
+\end{lstlisting}
+
+Detailed instructions are available on
+\begin{lstlisting}
+http://www.opencsw.org/manual/for-administrators/getting-started.html
+\end{lstlisting}
+
+For a list of available packages use:
+\begin{lstlisting}
+/opt/csw/bin/pkgutil -l
+\end{lstlisting}
+
+To install a package, just use the following command
+\begin{lstlisting}
+/opt/csw/bin/pkgutil -y -i <package name>
+\end{lstlisting}
+
+Bacula packages on Solaris 11 depend on:
+
+\begin{lstlisting}
+- CSWpython
+- CSWopenssl
+- CSWlibfbopenssl0
+- CSWreadline
+\end{lstlisting}
+
+\subsection{How to install Postgresql}
+You can get an excellent PostgreSQL distribution for Solaris directly
+on http://www.postgresql.org
+
+For example, the version 9.2 can be downloaded for Solaris 32/64 Intel:
+\begin{lstlisting}
+http://www.postgresql.org/ftp/binary/v9.2.0/solaris/solaris11/i386/
+\end{lstlisting}
+
+You may have to make the libpq available for Bacula, for that, just
+create a symlink to the libpq.so object in a standard library path.
+
+\begin{lstlisting}
+ln -s /usr/postgres/9.2/lib/64/libpq.so /opt/bacula/lib/amd64/
+ln -s /usr/postgres/9.2/lib/libpq.so /opt/bacula/lib/
+\end{lstlisting}
+
+\section{Upgrading Bacula}\label{upgrading1}
+\index[general]{Bacula!Upgrading}
+\index[general]{Upgrading Bacula}
+\index[general]{Upgrading}
+
+If you are upgrading from one Bacula version to another, you should first
+carefully read the ReleaseNotes of all major versions between your current
+version and the version to which you are upgrading. In many upgrades,
+especially for minor patch upgrades (e.g. between 6.4.0 and 6.4.1) there
+will be no database upgrade, and hence the process is rather simple.
+
+You {\bf must} ensure that on any given machine that all components of
+Bacula are running on exactly the same version. This is because they
+use shared libraries which are specific to each version, so having
+different Bacula versions of the various daemons will not work unless
+you have multiple libraries installed.
+
+As always, we attempt to support older File daemons. This avoids the
+need to do a simultaneous upgrade of many machines. For exactly which
+older versions of the FD are supported, please see the ReleaseNotes
+for the new version. In any case, you must always upgrade both the
+Director and the Storage daemon at the same time, and you must also
+upgrade any File daemon that is running on the same machine as a Director
+or a Storage daemon (see the prior paragraph).
+
+If the Bacula catalog database has been upgraded (as it is almost every
+major release), you will either need to reinitialize your database starting
+from scratch (not normally a good idea), or save an ASCII copy of your
+database, then proceed to upgrade it. If you are upgrading two major
+versions (e.g. 3.0.x to 5.0.0) then life will be more complicated because
+you must do two database upgrades. See below for more on this.
+
+Upgrading the catalog is usually done by the package when
+you are upgrading Bacula. However, there may be cases where
+you must or you want to upgrade manually.
+
+The manual process of upgrading the catalog is:
+
+\begin{lstlisting}
+cd <installed-scripts-dir> (default /etc/bacula)
+./update_bacula_tables
+\end{lstlisting}
+
+This update script can also be find in the Bacula source src/cats
+directory.
+
+If there are several database upgrades between your version and the
+version to which you are upgrading, you will need to apply each database
+upgrade script. For your convenience, you can find all the old upgrade scripts
+in the {\bf upgradedb} directory of the source code. You will need to edit the
+scripts to correspond to your system configuration. The final upgrade script,
+if any, can be applied as noted above.
+
+If you are upgrading from one major version to another, you will need to
+replace all your components at the same time as generally the inter-daemon
+protocol will change. However, within any particular release (e.g. version
+1.32.x) unless there is an oversight or bug, the daemon protocol will not
+change. If this is confusing, simply read the ReleaseNotes very carefully as
+they will note if all daemons must be upgraded at the same time.
+
+Finally, please note that in general it is not necessary or desirable
+to do a {\bf make uninstall} before doing an upgrade providing you are careful
+not to change the installation directories. In fact, if you do so, you will
+most likely delete all your conf files, which could be disastrous.
+The normal procedure during an upgrade is simply:
+
+\begin{lstlisting}
+./configure (your options)
+make
+make install
+\end{lstlisting}
+
+In general none of your existing .conf or .sql files will be overwritten,
+and you must do both the {\bf make} and {\bf make install} commands, a
+{\bf make install} without the preceding {\bf make} will not work.
+
+For additional information on upgrading, please see the \bsysxrlink{Upgrading Bacula Versions}{upgrading}{problems}{section} of the \problemsman{}.
+
+\section{Releases Numbering}
+\index[general]{Release Numbering}
+\index[general]{Version Numbering}
+Every Bacula release whether beta or production has a different number
+as well as the date of the release build. The numbering system follows
+traditional Open Source conventions in that it is of the form.
+
+\begin{lstlisting}
+major.minor.release
+\end{lstlisting}
+
+For example:
+\begin{lstlisting}
+1.38.11
+\end{lstlisting}
+
+where each component (major, minor, patch) is a number.
+The major number is currently 1 and normally does not change
+very frequently. The minor number starts at 0 and increases
+each for each production release by 2 (i.e. it is always an
+even number for a production release), and the patch number is
+starts at zero each time the minor number changes. The patch
+number is increased each time a bug fix (or fixes) is released
+to production.
+
+So, if your current production Bacula release is version 5.2.10. If there
+are bug fixes, the next minor release will be 5.2.11 (i.e. the patch number has
+increased by one).
+
+For all patch releases where the minor version number does not change,
+the database and all the daemons will be compatible. That means that
+you can safely run a 5.2.1 Director with a 5.2.10 Client providing
+it is on a different machine. Of course,
+in this case, the Director may have bugs that are not fixed. Generally,
+within a minor release (some minor releases are not so minor), all
+patch numbers are officially released to production. This means that if
+the current Bacula version is 5.2.11, versions 5.2.0, 5.2.1, ... 5.2.10
+have all been previously released.
+
+When the minor number is odd, it indicates that the package is under
+development and thus may not be stable. For example, if the current
+production release of Bacula is currently 5.2.11, the current development
+version is 5.3.22. All patch versions of the development code are
+available in the git source repository. However, not all patch versions
+of the development code (odd minor version) are officially released. When
+they are released, they are released as beta versions (see below for a
+definition of what beta means for Bacula releases).
+
+In general when the minor number increases from one production release
+to the next (i.e. 1.38.x to 1.40.0), the catalog database must be upgraded,
+the Director and Storage daemon must always be on the same minor release
+number, and often (not always), the Clients must also be on the same minor
+release. As often as possible, we attempt to make new releases that are
+downwards compatible with prior clients, but this is not always possible.
+You must check the release notes. In general, you will have fewer problems
+if you always run all the components on the same minor version number (i.e.
+all either 1.38.x or 1.40.x but not mixed).
+
+
+\label{BetaReleases}
+\section*{Beta Releases}
+\index[general]{Beta Releases}
+Towards the end of the development cycle, which typically runs
+one year from a major release to another, there will be several beta
+releases of the development code prior to a production release.
+As noted above, beta versions always have odd minor version numbers
+(e.g 1.37.x or 1.39.x).
+The purpose of the beta releases is to allow early adopter users to test
+the new code. Beta releases are made with the following considerations:
+
+\begin{bsysitemize}
+\item The code passes the regression testing on FreeBSD, Linux, and Solaris
+ machines.
+
+\item There are no known major bugs, or on the rare occasion that
+ there are, they will be documented or already in the bugs database.
+
+\item Some of the new code/features may not yet be tested.
+
+\item Bugs are expected to be found, especially in the new
+ code before the final production release.
+
+\item The code will have been run in production in at least one small
+ site (mine).
+
+\item The Win32 client will have been run in production at least
+ one night at that small site.
+
+\item The documentation in the manual is unlikely to be complete especially
+ for the new features, and the Release Notes may not be fully
+ organized.
+
+\item Beta code is not generally recommended for everyone, but
+ rather for early adopters.
+\end{bsysitemize}
+
+
+\section{Supported Operating Systems}
+\label{Systems}
+\index[general]{Systems!Supported Operating}
+\index[general]{Supported Operating Systems}
+
+Please see the
+\ilink{ Supported Operating Systems}{SupportedOSes} section
+of the QuickStart chapter of this manual.
+
+\section{What Database to Use?}
+\label{DB}
+\index[general]{What Database to Use?}
+\index[general]{Use!What Database to}
+
+Before installing Bacula you need to decide if you want to use
+MySQL or PostgreSQL. Note, the community version of Bacula supports
+SQLite, but for the Enterprise version, we support only MySQL and
+PostgreSQL
+
+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 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.