Updating INSTALL documents
[koha.git] / INSTALL.debian
blob876d2b0faec6f2487ad32a008de0454643e9b6ba
1 =============================
2 Installation Guide for Installing Koha on Debian Etch with MySQL 5
3 =============================
5 Copyright (C) 2007, 2008 LibLime (http://liblime.com)
6 Some parts copyright 2010 Chris Nighswonger
8 Feedback/bug reports: Koha Developer's List:
9 http://lists.koha.org/mailman/listinfo/koha-devel
11 This document last modified: 19 May 2010
13 Installation Instructions
14 =============================
16 All commands can be performed as a system user with sudo privileges,
17 as indicated or by running the command directly as root.
19 1. Prepare System and Install Dependencies
21 1.1 Install Debian Etch via Businesscard CD
23 See http://www.debian.org/releases/etch/debian-installer/
25 WARNING: use Perl 5.8 (a library Koha depends on,
26 MARC::File::XML may not work with Perl 5.10, see:
27 http://bugs.koha.org/cgi-bin/bugzilla/show_bug.cgi?id=2309),
29 1.2 Set up your locale
31 Your locale should be set to UTF-8, as should Apache2 and MySQL 5.
32 This step is VERY IMPORTANT for a UNICODE compliant system. Please 
33 read over the following document carefully:
35 http://wiki.koha.org/doku.php?id=encodingscratchpad
37 IMPORTANT:  You _MUST_ follow all the steps outlined there for
38             Apache2, MySQL 5, etc. BEFORE you install Koha.
40 1.3 Set up apt sources for Git, Yaz and Zebra packages
42 Edit your /etc/apt/sources.list file and add the following:
44     # Index Data
45     deb http://ftp.indexdata.dk/debian etch main
46     deb-src http://ftp.indexdata.dk/debian etch main
48     # Backports
49     deb http://www.backports.org/debian etch-backports main contrib non-free
51 Backports packages are signed with a key you can install as follows:
53     $ sudo apt-get update
54     $ sudo apt-get install debian-backports-keyring
56 The Index Data packages are signed with a key you can install as follows:
58     $ wget http://ftp.indexdata.dk/debian/indexdata.asc
59     $ sudo apt-key add indexdata.asc
61 Run the following command to update your system:
63     $ sudo apt-get update
64     $ sudo apt-get -t etch-backports install git-core git-email
65     $ sudo apt-get install yaz idzebra-2.0 idzebra-2.0-doc
67 1.4 Get Koha
69 1.4.1 Option A: Download Koha via Git (optional)
71     $ git clone git://git.koha-community.org/pub/scm/koha.git kohaclone
72     $ cd kohaclone
73     $ git checkout -b myinstall origin
75 Note: for more information about Git, please see the Koha Git Usage Guide:
77     http://wiki.koha.org/doku.php?id=en:development:git_usage
79 1.4.2 Option B: Download Koha from http://download.koha-community.org
81     $ wget http://download.koha-community.org/koha-3.00.00-beta.tar.gz
82     ( Note: use the latest stable version)
84 1.5 Install additional Debian dependencies
86 IMPORTANT:  You should only use CPAN for Perl dependencies which are NOT
87             available from the package maintainer. You have been warned!
89 Using the debian.packages file included in the Koha source tree,
90 run the following:
92     $ sudo dpkg --set-selections < install_misc/debian.packages
94 Now start dselect:
96     $ sudo dselect
98 Choose [I]nstall and accept packages to be installed (hit return)
100 (may take a while)
102 Choose [C]onfigure, [R]emove and [Q]uit until dselect has completed.
104 1.6 Install Perl dependencies that aren't packaged into Debian Etch
105 sources
107 Run the following command:
109     $ sudo cpan MARC::Record Class::Accessor MARC::Charset MARC::File::XML \
110                 Net::Z3950::ZOOM HTML::Template::Pro MARC::Crosswalk::DublinCore \
111                 PDF::Reuse PDF::Reuse::Barcode Data::ICal GD::Barcode::UPCE \
112                 XML::RSS Algorithm::CheckDigits::M43_001 Biblio::EndnoteStyle POE \
113                 Schedule::At DBD::SQLite GD SMS::Send HTTP::OAI IPC::Cmd Locale::Currency::Format
116   WARNINGS:
117   1.6.1 A Perl library Koha depends on, MARC::File::XML may not work with Perl
118     5.10, see: http://bugs.koha.org/cgi-bin/bugzilla/show_bug.cgi?id=2309),
120   1.6.2 Recent versions of CGI::Session have caused some issues for users;
121   as of this release date, we suggest downloading the CGI::Session::Serialize::yaml
122   tarball direct from CPAN and install it directly rather than using the cpan command
124   1.6.3 There is a known but benign error in the test case for Barcode::Code128, 
125   which is required by PDF::Reuse::Barcode.  If this module is not installed, 
126   you can do a forced installation of Barcode::Code128.
128 Note: you may need to run CPAN initialization if you've not run cpan
129 before:
131     /etc/perl/CPAN/Config.pm initialized.
132     
133     CPAN is the world-wide archive of perl resources. It consists of about
134     100 sites that all replicate the same contents all around the globe.
135     Many countries have at least one CPAN site already. The resources
136     found on CPAN are easily accessible with the CPAN.pm module. If you
137     want to use CPAN.pm, you have to configure it properly.
138     
139     If you do not want to enter a dialog now, you can answer 'no' to this
140     question and I'll try to autoconfigure. (Note: you can revisit this
141     dialog anytime later by typing 'o conf init' at the cpan prompt.)
142     
143     Are you ready for manual configuration? [yes]
145 When the configuration is completed CPAN will install the Perl modules.
147 2. Configuration of dependencies
149 2.1 Update root MySQL password (if dselect didn't do it for you already)
151     $ sudo mysqladmin password <password>
153 2.2 Create the Koha database
155     Create the database and user with associated privileges:
157     $ mysqladmin -uroot -p<password> create <kohadatabasename>
158     $ mysql -uroot -p<password>
159     
160     Welcome to the MySQL monitor.  Commands end with ; or \g.
161     Your MySQL connection id is 22
162     Server version: 5.0.32-Debian_7etch3-log Debian etch distribution
163     
164     Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
165     
166     mysql> grant all on <kohadatabasename>.* to '<kohadatabaseuser>'@'localhost' identified by '<kohadatabaseuserpassword>';
167     Query OK, 0 rows affected (0.00 sec)
169     mysql> flush privileges;
170     Query OK, 0 rows affected (0.00 sec)
172     mysql> quit
174 2.3 Test your SAX Parser and correct where necessary
176     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:
178     $ cd koha
179     $ misc/sax_parser_print.pl 
181     You should see something like::
183     XML::LibXML::SAX::Parser=HASH(0x81fe220)
185     If you're using PurePerl or Expat, you'll need to edit your
186     ini file, typically located at:
188     /etc/perl/XML/SAX/ParserDetails.ini
190 2.4 Install DBD::mysql Perl module
192 In order to handle UTF-8 correctly, Koha requires at least version 4.004
193 of the DBD::mysql Perl module. However, Debian Etch has a stable package
194 only for version 3.0008, so it is necessary to install the module  from CPAN.
195 DBD::mysql's test suite needs to use a MySQL 'test' DB which doesn't exist 
196 anymore. So there are two options to install DBD::mysql: 
198   (1) install without test suite,
199   (2) install with test suite requiring a test MySQL DB creation.
201 2.4.1 Install without test suite
203 Force install DBD::mysql:
205     $ sudo cpan
206     cpan> force install DBD::mysql
208 2.4.2 Create test database in order to install DBD::mysql
210 Because of DBD::mysql's test suite, it is necessary to temporarily create a
211 test database and user:
213     $ mysql -uroot -p<password>
215     Create the database and user with associated privileges:
217     Welcome to the MySQL monitor.  Commands end with ; or \g.
218     Your MySQL connection id is 22
219     Server version: 5.0.32-Debian_7etch3-log Debian etch distribution
221     Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
223     mysql> create database test;
224     Query OK, 1 row affected (0.00 sec)
226     mysql> grant all on test.* to 'test'@'localhost' identified by 'test';
227     Query OK, 0 rows affected (0.00 sec)
228     (test database, user, and password can be different if need be)
230     mysql> flush privileges;
231     Query OK, 0 rows affected (0.00 sec)
233     mysql> quit
235 Next install DBD::mysql:
237     $ sudo cpan
239     cpan> o conf makepl_arg
240     (get current value of this CPAN parameter)
242     cpan> o conf makepl_arg "--testdb=test --testuser=test --testpass=test"
244     cpan> install DBD::mysql
246     cpan> o conf makepl_arg ''
248     OR 
250     cpan> o conf makepl_arg '<old setting>'
252     (restore this setting so as to not interfere with future CPAN installs).
255 Finally, remove the test database:
257     $ mysql -uroot -p<password>
259     mysql> drop database test;
260     Query OK, 1 row affected (0.00 sec)
262     mysql> exit
263     Bye
265 3. Run the Koha installer
267     $ perl Makefile.PL
268     ( answer questions )
269     $ make
270     $ make test
271     $ sudo make install  #If doing a -dev install, skip the sudo!
273 4. Configure and start Apache
274     $ sudo ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites-available/koha
275     (note that the path to koha-httpd.conf may be different depending on your
276     installation choices)
278 Add the following lines to /etc/apache2/ports.conf:
280     Listen 80
281     Listen 8080
283 (Note: It may be productive to use different DNS entries and NamedVirtualHosts
284 directives in Apache to separate the staff and OPAC clients, to eliminate a 
285 cross-client authentication nuisance, but it will work fine like this.)
287 Run the following commands:
289     $ sudo a2enmod rewrite
290     $ sudo a2ensite koha
291     $ sudo apache2ctl restart
293 Note: you may still see the usual Apache default site if your VirtualHost
294 configuration isn't correct.  The command "sudo a2dissite default" may be a
295 quick fix, but may have side-effects.  See the Apache HTTPD manual section on
296 virtual hosts for full instructions.
298 5. Configure and start Zebra
300 Note: it's recommended that you daemonize the Zebra process and add it to your
301 startup profile. For a non-production test/development installation, running 
302 Zebra from the command line can be useful.  Otherwise you will want zebrasrv
303 running when Apache/Koha is.
305 Note: it's also recommended that you create a Koha system user, which you will
306 have specified during the install process. Alternatively, Zebra can be
307 configured to run as the root user.
309 Option 1: run the Zebra process from the command line:
311 1.1 Zebra Search Server
313 This process send responses to search requests sent by Koha or
314 Z39.50/SRU/SRW clients.
316     $ sudo -u ${KOHA_USER} zebrasrv -f /etc/koha/koha-conf.xml
317     (note that the path to koha-conf.xml may be different depending on your
318     installation choices)
320 Note: the user you run Zebra as will be the only user with write permission
321       on the Zebra index; in development mode, you may wish to use your
322       system user.
324 1.2 Zebra Indexer
326 Added/updated/deleted records in Koha MySQL database must be indexed
327 into Zebra. A specific script must be launched each time a bibliographic
328 or an authority record is edited.
330     $ sudo -u ${KOHA_USER} misc/migration_tools/rebuild_zebra -z -b -a
331     NOTE: This script should be run as the kohauser (the default is 'koha').
333 Option 2: run the Zebra process as a daemon, and add to startup process:
335 Note that references to $SCRIPT_DIR refer to the directory where
336 Koha's command-line scripts are installed, e.g., /usr/share/koha/bin.
338 1.1 Zebra Search Server
340     $ sudo ln -s ${SCRIPT_DIR}/koha-zebra-ctl.sh  /etc/init.d/koha-zebra-daemon
341     (Note: ${SCRIPT_DIR} is /usr/share/koha/bin/ by default in a standard install)
342     $ sudo update-rc.d koha-zebra-daemon defaults
343     ( Note: see man chkconfig(8) on other distros )
345     $ sudo ${SCRIPT_DIR}/koha-zebra-ctl.sh start
347 1.2 Zebra Indexer
349 Add an entry in Koha user crontab to scheduled added/updated/deleted records
350 indexing by Zebra with this command:
352   <path/to/koha>/misc/migration_tools/rebuild_zebra -z -b -a
354 See check misc/cronjobs/crontab.example for usage examples.
355 NOTE: This job should be setup under the kohauser (the default is 'koha').
357 6. Run the Web Installer, populate the database, initial configuration of settings
359     Point your browser to http://<servername>:8080/
361     It should redirect you to the Web Installer where you can continue the setup.
362     You can install the sample data for libraries, patrons, etc. via the Web Installer
364 7. What next?
366     Once the installer has completed, you can import and index MARC records from the
367     command line thusly (Note: you can also use the 'Stage MARC records for import' from
368     the Tools area of Koha's Staff Client to import a batch of MARC records):
370     $ export KOHA_CONF=/usr/share/koha/etc/koha-conf.xml
371       (note: use the correct path to your koha-conf.xml)
373 7.0 Schedule crontab jobs
374     Do you want Koha to:
375         send mail?
376         automatically index added records?
377         generate overdue or advance notices?
378         mark items lost after they are long overdue?
379         assess fines?
381     All these and other regularly scheduled background tasks are handled by crontab.
382     You need to examine the example crontab file, edit a copy to your liking, and schedule it.
384     $ crontab -l           # just check if you have any other jobs already scheduled
385     $ cp ./misc/cronjobs/crontab.example my_crontab
386     $ vi my_crontab        # select jobs or adjust times.
387     $                      # If you had already scheduled lines, add them at the bottom.
388     $ crontab my_crontab   # This overwrites your scheduled jobs with the new ones.
390     If you want to check to confirm, you can run crontab -l again.
391     NOTE: Be sure to add KOHA_CONF and PERL5LIB vars to the top of your cron jobs.
393 7.1 Import:
394     Bibliographic data in MARC21 format
395     $ misc/migration_tools/bulkmarcimport.pl -file /path/to/marc.iso2709
396     Authority data in MARC21 format
397     $ misc/migration_tools/bulkauthimport.pl -file /path/to/auth.iso2709
399 7.2 Fast Index:
400     $ misc/migration_tools/rebuild_zebra.pl -b -w
402     Once the indexing has completed, you will be able to search for records in your system.
403     NOTE: This script should be run as the kohauser (the default is 'koha').
405 7.3 Schedule regular index updates
406     You need to run rebuild_zebra.pl -b -a -z as a regular cron job in orde to pick up new bibs
407     and items as you add them. Check misc/cronjobs/crontab.example for usage examples. See 7.0 above.
408     NOTE: This job should be setup under the kohauser (the default is 'koha').
410 7.4 To enable public Z39.50/SRU servers, you'll need to edit your koha-conf.xml and
411     change the <listen> options to listen on a TCP port; then restart the zebra daemon.
413 UPGRADE
414 =======
415 If you are upgrading from a previous installation of Koha 3, you can
416 use the following:
418  perl Makefile.PL --prev-install-log /path/to/koha-install-log
419  make
420  make test
421  sudo make upgrade
423 Uninstall Instructions
424 =============================
425 1) Stop Services:
426    $ sudo a2dissite koha
427    $ sudo rm /etc/apache2/sites-available/koha
428    $ sudo apache2ctl restart
430    $ sudo update-rc.d koha-zebra-daemon remove
431    $ sudo rm /etc/init.d/koha-zebra-daemon
433 2) Remove Database and Indexes
435    # MySQL
436    $ mysql -u<kohauser> -p<kohapassword>
437    > drop database koha;
439    # Zebra Indexes
440    $ zebraidx -c <prefix>/etc/zebradb/zebra-biblios.cfg -g iso2709 -d biblios init
441    $ zebraidx -c <prefix>/etc/zebradb/zebra-authorities.cfg -g iso2709 -d authorities init
443 3) Remove Koha Install Directories and Configuration Files
444    Don't forget about any crontab entries
446 Tested on the following operating environments
447 ==============================================
448 - Debian Etch 4.0
450 Installer Bug reports
451 =====================
452 Please send any installer bug reports to jmf AT liblime DOT com
454 Other Notes
455 =====================
456 This file is part of Koha
458 Koha is free software; you can redistribute it and/or modify it under the
459 terms of the GNU General Public License as published by the Free Software
460 Foundation; either version 2 of the License, or (at your option) any later
461 version.
463 Koha is distributed in the hope that it will be useful, but WITHOUT ANY
464 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
465 A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
466 You should have received a copy of the GNU General Public License along
467 with Koha; if not, write to the Free Software Foundation, Inc.,
468 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.