Bug 4935: fix for allowing authorized values to be "unset"
[koha.git] / INSTALL.debian
index 243a0bc..e5c560d 100644 (file)
@@ -1,14 +1,13 @@
 =============================
-Installation Guide for Installing Koha on Debian Etch with MySQL 5
+Installation Guide for Installing Koha on Debian Lenny with MySQL 5
 =============================
 
-Copyright (C) 2007, 2008 LibLime (http://liblime.com)
 Some parts copyright 2010 Chris Nighswonger
 
 Feedback/bug reports: Koha Developer's List:
-https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
+http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
 
-This document last modified: 19 May 2010
+This document last modified: October 8, 2010
 
 Installation Instructions
 =============================
@@ -18,118 +17,71 @@ as indicated or by running the command directly as root.
 
 1. Prepare System and Install Dependencies
 
-1.1 Install Debian Etch via Businesscard CD
+1.1 Install Debian Lenny via Businesscard CD
 
-See http://www.debian.org/releases/etch/debian-installer/
+    See http://www.debian.org/releases/lenny/debian-installer/
 
-WARNING: use Perl 5.8 (a library Koha depends on,
-MARC::File::XML may not work with Perl 5.10, see:
-http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=2309),
-
-1.2 Set up your locale
-
-Your locale should be set to UTF-8, as should Apache2 and MySQL 5.
-This step is VERY IMPORTANT for a UNICODE compliant system. Please 
-read over the following document carefully:
-
-http://wiki.koha.org/doku.php?id=encodingscratchpad
-
-IMPORTANT:  You _MUST_ follow all the steps outlined there for
-            Apache2, MySQL 5, etc. BEFORE you install Koha.
-
-1.3 Set up apt sources for Git, Yaz and Zebra packages
+1.2 Set up Indexdata apt sources for Yaz and Zebra packages
 
 Edit your /etc/apt/sources.list file and add the following:
 
     # Index Data
-    deb http://ftp.indexdata.dk/debian etch main
-    deb-src http://ftp.indexdata.dk/debian etch main
-
-    # Backports
-    deb http://www.backports.org/debian etch-backports main contrib non-free
-
-Backports packages are signed with a key you can install as follows:
-
-    $ sudo apt-get update
-    $ sudo apt-get install debian-backports-keyring
+    deb http://ftp.indexdata.dk/debian lenny main
+    deb-src http://ftp.indexdata.dk/debian lenny main
 
 The Index Data packages are signed with a key you can install as follows:
 
-    $ wget http://ftp.indexdata.dk/debian/indexdata.asc
-    $ sudo apt-key add indexdata.asc
-
-Run the following command to update your system:
+    $ wget -O- http://ftp.indexdata.dk/debian/indexdata.asc | sudo apt-key add -
 
+Finally, update your apt sources:
     $ sudo apt-get update
-    $ sudo apt-get -t etch-backports install git-core git-email
-    $ sudo apt-get install yaz idzebra-2.0 idzebra-2.0-doc
 
-1.4 Get Koha
+1.3 Get Koha
+Choose one of these options:
 
-1.4.1 Option A: Download Koha via Git (optional)
+1.3.1 Option A: Download Koha via Git (optional)
 
-    $ git clone git://git.koha-community.org/pub/scm/koha.git kohaclone
-    $ cd kohaclone
+    $ sudo apt-get install git-core git-email
+    $ git clone git://git.koha-community.org/koha.git koha
+    $ cd koha
     $ git checkout -b myinstall origin
 
 Note: for more information about Git, please see the Koha Git Usage Guide:
 
-    http://wiki.koha.org/doku.php?id=en:development:git_usage
+    http://wiki.koha-community.org/wiki/Version_Control_Using_Git
 
-1.4.2 Option B: Download Koha from http://download.koha-community.org
+1.3.2 Option B: Download Koha from http://download.koha-community.org
 
-    $ wget http://download.koha-community.org/koha-3.00.00-beta.tar.gz
-    ( Note: use the latest stable version)
+Find the latest Koha stable version on http://download.koha-community.org
+and get it:
 
-1.5 Install additional Debian dependencies
+    $ wget <URL> found on download.koha-community.org
+
+1.4 Install additional Debian dependencies
 
 IMPORTANT:  You should only use CPAN for Perl dependencies which are NOT
             available from the package maintainer. You have been warned!
 
-Using the debian.packages file included in the Koha source tree,
-run the following:
-
-    $ sudo dpkg --set-selections < install_misc/debian.packages
-
-Now start dselect:
-
-    $ sudo dselect
-
-Choose [I]nstall and accept packages to be installed (hit return)
-
-(may take a while)
+Run shell script installing all necessary Debian packages, MySQL Server,
+Zebra and all Debian packaged Perl module required by Koha:
 
-Choose [C]onfigure, [R]emove and [Q]uit until dselect has completed.
+    $ sudo install_misc/apt-get-debian-lenny.sh
 
-1.6 Install Perl dependencies that aren't packaged into Debian Etch
+1.5 Install Perl dependencies that aren't packaged into Debian Lenny
 sources
 
 Run the following command:
 
-    $ sudo cpan MARC::Record Class::Accessor MARC::Charset MARC::File::XML \
-                Net::Z3950::ZOOM HTML::Template::Pro MARC::Crosswalk::DublinCore \
-                PDF::Reuse PDF::Reuse::Barcode Data::ICal GD::Barcode::UPCE \
-                XML::RSS Algorithm::CheckDigits::M43_001 Biblio::EndnoteStyle POE \
-                Schedule::At DBD::SQLite GD SMS::Send HTTP::OAI IPC::Cmd Locale::Currency::Format
-
-
-  WARNINGS:
-  1.6.1 A Perl library Koha depends on, MARC::File::XML may not work with Perl
-    5.10, see: http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=2309),
-
-  1.6.2 Recent versions of CGI::Session have caused some issues for users;
-  as of this release date, we suggest downloading the CGI::Session::Serialize::yaml
-  tarball direct from CPAN and install it directly rather than using the cpan command
-
-  1.6.3 There is a known but benign error in the test case for Barcode::Code128, 
-  which is required by PDF::Reuse::Barcode.  If this module is not installed, 
-  you can do a forced installation of Barcode::Code128.
+    $ sudo cpan Algorithm::CheckDigits SMS::Send HTTP::OAI IPC::Cmd \
+      Memoize::Memcached PDF::API2::Simple PDF::Table Storable Test::More \
+      Locale::Currency::Format DateTime Lingua::Stem::Snowball Text::CSV::Encoded \
+      UNIVERSAL::require YAML Authen::CAS::Client
 
 Note: you may need to run CPAN initialization if you've not run cpan
 before:
 
     /etc/perl/CPAN/Config.pm initialized.
-    
+
     CPAN is the world-wide archive of perl resources. It consists of about
     100 sites that all replicate the same contents all around the globe.
     Many countries have at least one CPAN site already. The resources
@@ -146,144 +98,92 @@ When the configuration is completed CPAN will install the Perl modules.
 
 2. Configuration of dependencies
 
-2.1 Update root MySQL password (if dselect didn't do it for you already)
-
-    $ sudo mysqladmin password <password>
-
-2.2 Create the Koha database
+2.1 Create the Koha database
 
-    Create the database and user with associated privileges:
+ Create the database and user with associated privileges (information inside <> brackets is
+ data you assign specifically to your installation. Do not include the <>'s when entering the commands):
 
     $ mysqladmin -uroot -p<password> create <kohadatabasename>
     $ mysql -uroot -p<password>
-    
-    Welcome to the MySQL monitor.  Commands end with ; or \g.
-    Your MySQL connection id is 22
-    Server version: 5.0.32-Debian_7etch3-log Debian etch distribution
-    
-    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
-    
-    mysql> grant all on <kohadatabasename>.* to '<kohadatabaseuser>'@'localhost' identified by '<kohadatabaseuserpassword>';
-    Query OK, 0 rows affected (0.00 sec)
-
-    mysql> flush privileges;
-    Query OK, 0 rows affected (0.00 sec)
-
-    mysql> quit
-
-2.3 Test your SAX Parser and correct where necessary
-
-    You must be sure you're using the XML::LibXML SAX parser, not Expat or PurePerl, both of which have outstanding bugs with pre-composed characters. You can test your SAX parser by running:
-
-    $ cd koha
-    $ misc/sax_parser_print.pl 
-
-    You should see something like::
-
-    XML::LibXML::SAX::Parser=HASH(0x81fe220)
-
-    If you're using PurePerl or Expat, you'll need to edit your
-    ini file, typically located at:
-
-    /etc/perl/XML/SAX/ParserDetails.ini
-
-2.4 Install DBD::mysql Perl module
-
-In order to handle UTF-8 correctly, Koha requires at least version 4.004
-of the DBD::mysql Perl module. However, Debian Etch has a stable package
-only for version 3.0008, so it is necessary to install the module  from CPAN.
-DBD::mysql's test suite needs to use a MySQL 'test' DB which doesn't exist 
-anymore. So there are two options to install DBD::mysql: 
-
-  (1) install without test suite,
-  (2) install with test suite requiring a test MySQL DB creation.
-
-2.4.1 Install without test suite
-
-Force install DBD::mysql:
-
-    $ sudo cpan
-    cpan> force install DBD::mysql
-
-2.4.2 Create test database in order to install DBD::mysql
-
-Because of DBD::mysql's test suite, it is necessary to temporarily create a
-test database and user:
-
-    $ mysql -uroot -p<password>
-
-    Create the database and user with associated privileges:
 
     Welcome to the MySQL monitor.  Commands end with ; or \g.
     Your MySQL connection id is 22
-    Server version: 5.0.32-Debian_7etch3-log Debian etch distribution
+    Server version: 5.0.51a-24 (Debian)
 
     Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
-    mysql> create database test;
-    Query OK, 1 row affected (0.00 sec)
-
-    mysql> grant all on test.* to 'test'@'localhost' identified by 'test';
+    mysql> grant all on <kohadatabasename>.* to '<kohadatabaseuser>'@'localhost' identified by '<kohadatabaseuserpassword>';
     Query OK, 0 rows affected (0.00 sec)
-    (test database, user, and password can be different if need be)
 
     mysql> flush privileges;
     Query OK, 0 rows affected (0.00 sec)
 
     mysql> quit
 
-Next install DBD::mysql:
+You may want to document the database name, the database username, and the database password you just set.
+Step 3 will require them.
 
-    $ sudo cpan
+2.2 Test your SAX Parser and correct where necessary
 
-    cpan> o conf makepl_arg
-    (get current value of this CPAN parameter)
+You must be sure you're using the XML::LibXML SAX parser, not Expat or
+PurePerl, both of which have outstanding bugs with pre-composed characters.
+You can test your SAX parser by running:
 
-    cpan> o conf makepl_arg "--testdb=test --testuser=test --testpass=test"
+    $ cd koha
+    $ misc/sax_parser_print.pl 
 
-    cpan> install DBD::mysql
+You should see something like:
 
-    cpan> o conf makepl_arg ''
+    XML::LibXML::SAX::Parser=HASH(0x81fe220)
 
-    OR 
+If you are configured to use PurePerl or Expat, the script will say you have a problem and 
+you'll need to edit your ini file to correct it.
 
-    cpan> o conf makepl_arg '<old setting>'
+The file is typically located at:
 
-    (restore this setting so as to not interfere with future CPAN installs).
+    /etc/perl/XML/SAX/ParserDetails.ini
 
+The correct parser entry will need to be moved to the bottom of the file.
+The following is the entry you are looking for:
 
-Finally, remove the test database:
+    [XML::LibXML::SAX::Parser]
+       http://xml.org/sax/features/namespaces = 1
 
-    $ mysql -uroot -p<password>
+2.3 Create your Koha system user (if you haven't created one already)
 
-    mysql> drop database test;
-    Query OK, 1 row affected (0.00 sec)
+    $ sudo adduser koha
 
-    mysql> exit
-    Bye
+You can substitute any username for "koha," just be sure to write it down, you will need to know what it is in step 3.
 
 3. Run the Koha installer
 
     $ perl Makefile.PL
-    ( answer questions )
+      ( answer questions )
     $ make
     $ make test
-    $ sudo make install  #If doing a -dev install, skip the sudo!
+    $ sudo make install
+
+3.1 Export the environment variables
+Make install will tell you what the proper path for these environment variables is.
+In case you missed it at the end of make install, here are some examples:
+
+Example (for standard install):
+    $ export KOHA_CONF=/etc/koha/koha-conf.xml
+    $ export PERL5LIB=/usr/share/koha/lib
+
+Example (for dev install. These paths are set during Makefile.PL.):
+    $ export KOHA_CONF=/path/to/your/koha-conf.xml
+    $ export PERL5LIB=/path/to/koha/lib
 
 4. Configure and start Apache
     $ sudo ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites-available/koha
-    (note that the path to koha-httpd.conf may be different depending on your
-    installation choices)
+(note that the path to koha-httpd.conf may be different if you chose a dev install)
 
 Add the following lines to /etc/apache2/ports.conf:
 
     Listen 80
     Listen 8080
 
-(Note: It may be productive to use different DNS entries and NamedVirtualHosts
-directives in Apache to separate the staff and OPAC clients, to eliminate a 
-cross-client authentication nuisance, but it will work fine like this.)
-
 Run the following commands:
 
     $ sudo a2enmod rewrite
@@ -291,75 +191,98 @@ Run the following commands:
     $ sudo apache2ctl restart
 
 Note: you may still see the usual Apache default site if your VirtualHost
-configuration isn't correct.  The command "sudo a2dissite default" may be a
-quick fix, but may have side-effects.  See the Apache HTTPD manual section on
-virtual hosts for full instructions.
+      configuration isn't correct.  If Koha is the only web application running on the server,
+      the command "sudo a2dissite default" may be a quick fix. For servers running other sites
+      alongside Koha, see the Apache HTTPD manual section on virtual hosts for full
+      instructions (http://httpd.apache.org/docs/2.0/vhosts/).
+
+5. Run the Web Installer, populate the database, initial configuration of settings
 
-5. Configure and start Zebra
+Point your browser to http://<servername>:8080/
+
+Note: <servername> is (usually) the IP of your server, or localhost (if you are connecting
+      from the same machine Koha is installed on. You can verify the location by checking 
+      the VirtualHost settings for both the opac and intranet virtual hosts in koha-httpd.conf
+
+Koha will redirect you to the Web Installer where you can continue the setup. You will be prompted to enter in your DATABASE username and password. It is through this interface 
+that 
+you can install the sample data for libraries, patrons, and much more.
+
+Be aware that removing sample data at a later time (when you may want to take the 
+server into production) may not be easy, and if your intent is to take this 
+install from testing to production, go with minimal sample data (no patrons or bibliographic records).
+
+6. Configure and start Zebra
 
 Note: it's recommended that you daemonize the Zebra process and add it to your
-startup profile. For a non-production test/development installation, running 
-Zebra from the command line can be useful.  Otherwise you will want zebrasrv
-running when Apache/Koha is.
+      startup profile. For a non-production test/development installation, running
+      Zebra from the command line can be useful. Pick one of the options below (or roll your own).
 
 Note: it's also recommended that you create a Koha system user, which you will
-have specified during the install process. Alternatively, Zebra can be
-configured to run as the root user.
+      have specified during the install process. Alternatively, Zebra can be
+      configured to run as the root user.
 
-Option 1: run the Zebra process from the command line:
+Option 1: run the Zebra processes from the command line (manual indexing):
 
-1.1 Zebra Search Server
+6.1.1 Zebra Search Server
 
 This process send responses to search requests sent by Koha or
 Z39.50/SRU/SRW clients.
 
-    $ sudo -u ${KOHA_USER} zebrasrv -f /etc/koha/koha-conf.xml
-    (note that the path to koha-conf.xml may be different depending on your
-    installation choices)
+    $ sudo -u <kohauser> zebrasrv -f /etc/koha/koha-conf.xml
+    (note that the path to koha-conf.xml may be different if you chose a dev install, and that
+    <kohauser> refers to the user you set up in step 2.3)
 
 Note: the user you run Zebra as will be the only user with write permission
       on the Zebra index; in development mode, you may wish to use your
       system user.
 
-1.2 Zebra Indexer
+
+6.1.2 Zebra Indexer
 
 Added/updated/deleted records in Koha MySQL database must be indexed
 into Zebra. A specific script must be launched each time a bibliographic
 or an authority record is edited.
 
-    $ sudo -u ${KOHA_USER} misc/migration_tools/rebuild_zebra -z -b -a
-    NOTE: This script should be run as the kohauser (the default is 'koha').
+    $ sudo -u <kohauser> misc/migration_tools/rebuild_zebra.pl -z -b -a
 
-Option 2: run the Zebra process as a daemon, and add to startup process:
+Note: This script should be run as the kohauser (the default is 'koha', but
+this is the user you set up in step 2.3).
 
-Note that references to $SCRIPT_DIR refer to the directory where
-Koha's command-line scripts are installed, e.g., /usr/share/koha/bin.
+Option 2: run the Zebra process as a daemon (automatic indexing):
 
-1.1 Zebra Search Server
+Note: References to <script_dir> refer to the directory where
+      Koha's command-line scripts are installed, the path
+      is /usr/share/koha/bin/ by default in a standard install.
 
-    $ sudo ln -s ${SCRIPT_DIR}/koha-zebra-ctl.sh  /etc/init.d/koha-zebra-daemon
-    (Note: ${SCRIPT_DIR} is /usr/share/koha/bin/ by default in a standard install)
+6.2.1 Zebra Search Server
+
+    $ sudo ln -s <script_dir>/koha-zebra-ctl.sh  /etc/init.d/koha-zebra-daemon
+    (Note: <script_dir> is /usr/share/koha/bin/ by default in a standard install)
     $ sudo update-rc.d koha-zebra-daemon defaults
-    ( Note: see man chkconfig(8) on other distros )
 
-    $ sudo ${SCRIPT_DIR}/koha-zebra-ctl.sh start
+    $ sudo <script_dir>/koha-zebra-ctl.sh start
+    (Note: <script_dir> is /usr/share/koha/bin/ by default in a standard install)
+
 
-1.2 Zebra Indexer
+6.2.2 Zebra Indexer
 
-Add an entry in Koha user crontab to scheduled added/updated/deleted records
-indexing by Zebra with this command:
+Add an entry in Koha user crontab to process scheduled added/updated/deleted records
+indexing by Zebra. <script_dir>cronjobs/crontab.example contains examples for these cron jobs (and many more).
 
-  <path/to/koha>/misc/migration_tools/rebuild_zebra -z -b -a
+NOTE: The cronjobs should be setup under the kohauser (the default is 'koha', but
+this is the user you set up in step 2.3).
 
-See check misc/cronjobs/crontab.example for usage examples.
-NOTE: This job should be setup under the kohauser (the default is 'koha').
+Edit the crontab for the koha user by running
+    $ sudo -u <kohauser> crontab -e
 
-6. Run the Web Installer, populate the database, initial configuration of settings
+For Zebra indexing, you are looking for the example that begins with
+    
+    # ZEBRA INDEX UPDATES with -z option, incremental index updates throughout the day
+    # for both authorities and bibs
 
-    Point your browser to http://<servername>:8080/
+It may be easiest to copy/paste the example into your own crontab and modify as necessary.
 
-    It should redirect you to the Web Installer where you can continue the setup.
-    You can install the sample data for libraries, patrons, etc. via the Web Installer
 
 7. What next?
 
@@ -370,42 +293,26 @@ NOTE: This job should be setup under the kohauser (the default is 'koha').
     $ export KOHA_CONF=/usr/share/koha/etc/koha-conf.xml
       (note: use the correct path to your koha-conf.xml)
 
-7.0 Schedule crontab jobs
-    Do you want Koha to:
-        send mail?
-        automatically index added records?
-        generate overdue or advance notices?
-        mark items lost after they are long overdue?
-        assess fines?
+7.1 Import:
 
-    All these and other regularly scheduled background tasks are handled by crontab.
-    You need to examine the example crontab file, edit a copy to your liking, and schedule it.
+Bibliographic data in MARC21 format
 
-    $ crontab -l           # just check if you have any other jobs already scheduled
-    $ cp ./misc/cronjobs/crontab.example my_crontab
-    $ vi my_crontab        # select jobs or adjust times.
-    $                      # If you had already scheduled lines, add them at the bottom.
-    $ crontab my_crontab   # This overwrites your scheduled jobs with the new ones.
+    $ misc/migration_tools/bulkmarcimport.pl -file /path/to/marc.iso2709
 
-    If you want to check to confirm, you can run crontab -l again.
-    NOTE: Be sure to add KOHA_CONF and PERL5LIB vars to the top of your cron jobs.
+Authority data in MARC21 format
 
-7.1 Import:
-    Bibliographic data in MARC21 format
-    $ misc/migration_tools/bulkmarcimport.pl -file /path/to/marc.iso2709
-    Authority data in MARC21 format
-    $ misc/migration_tools/bulkauthimport.pl -file /path/to/auth.iso2709
+    $ misc/migration_tools/bulkmarcimport.pl -a -file /path/to/auth.iso2709
 
 7.2 Fast Index:
     $ misc/migration_tools/rebuild_zebra.pl -b -w
 
     Once the indexing has completed, you will be able to search for records in your system.
-    NOTE: This script should be run as the kohauser (the default is 'koha').
+    NOTE: This script should be run as the kohauser (the default is 'koha', this is the user we set up in step 2.3).
 
 7.3 Schedule regular index updates
     You need to run rebuild_zebra.pl -b -a -z as a regular cron job in orde to pick up new bibs
     and items as you add them. Check misc/cronjobs/crontab.example for usage examples. See 7.0 above.
-    NOTE: This job should be setup under the kohauser (the default is 'koha').
+    NOTE: This job should be setup under the kohauser (the default is 'koha', this is the user we set up in step 2.3).
 
 7.4 To enable public Z39.50/SRU servers, you'll need to edit your koha-conf.xml and
     change the <listen> options to listen on a TCP port; then restart the zebra daemon.
@@ -415,6 +322,7 @@ UPGRADE
 If you are upgrading from a previous installation of Koha 3, you can
 use the following:
 
+ ./koha_perl_deps.pl -u -m # to identify new Perl dependencies
  perl Makefile.PL --prev-install-log /path/to/koha-install-log
  make
  make test
@@ -445,11 +353,7 @@ Uninstall Instructions
 
 Tested on the following operating environments
 ==============================================
-- Debian Etch 4.0
-
-Installer Bug reports
-=====================
-Please send any installer bug reports to jmf AT liblime DOT com
+- Debian Lenny 5.0
 
 Other Notes
 =====================
@@ -463,6 +367,7 @@ version.
 Koha is distributed in the hope that it will be useful, but WITHOUT ANY
 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-You should have received a copy of the GNU General Public License along
-with Koha; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+You should have received a copy of the GNU General Public License along with
+Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+Suite 330, Boston, MA  02111-1307 USA
+