From 858f67f01a67c8b761dc29271f9f04f2d547bb8f Mon Sep 17 00:00:00 2001 From: Eric Olsen Date: Sat, 11 Sep 2010 22:34:59 -0500 Subject: [PATCH] Bug 5217 : package/CPAN updates for Ubuntu Lucid install Signed-off-by: Galen Charlton --- INSTALL.ubuntu.lucid | 358 +++++++++++++++++++++++++++++++ install_misc/ubuntu-pkg-check.sh | 19 ++ install_misc/ubuntu.packages | 208 ++++++++++-------- 3 files changed, 497 insertions(+), 88 deletions(-) create mode 100644 INSTALL.ubuntu.lucid create mode 100755 install_misc/ubuntu-pkg-check.sh diff --git a/INSTALL.ubuntu.lucid b/INSTALL.ubuntu.lucid new file mode 100644 index 0000000000..7ad39da9f1 --- /dev/null +++ b/INSTALL.ubuntu.lucid @@ -0,0 +1,358 @@ +============================= +Installation Guide for Installing Koha on Ubuntu Lucid Lynx (10.04 LTS) with MySQL 5 +============================= + +Copyright (C) 2007, 2008 LibLime (http://liblime.com) +Some parts copyright 2010 Chris Nighswonger + +Original author: Joshua Ferraro +Modified for Ubuntu by: Chris Nighswonger (cnighswonger AT foundations DOT edu) + +Feedback/bug reports: Koha Developer's List: +http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel + +This document last modified: 11 Sep 2010 + +Installation Instructions +============================= + +All commands can be performed as a system user with sudo privileges, +as indicated or by running the command directly as root. + +1. Prepare System and Install Dependencies + +1.1 Install Ubuntu Lucid Lynx via CD + +See http://www.ubuntu.com/getubuntu/download + +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 + +You can verify your system locale by typing the following command: + + $ locale + +IMPORTANT: You _MUST_ follow all the steps outlined there for + Apache2, MySQL 5, etc. BEFORE you install Koha. + +1.3 Get Koha + +1.3.1 Option A: Download Koha via Git (optional) + + $ sudo apt-get install git-core git-email + $ git clone git://git.koha-community.org/pub/scm/koha.git kohaclone + $ cd kohaclone + $ git checkout -b myinstall origin + +Note: for more information about Git, please see the Koha Git Usage Guide: + + http://wiki.koha-community.org/wiki/Version_Control_Using_Git + +1.3.2 Option B: Download Koha from http://download.koha-community.org + + $ wget http://download.koha-community.org/koha-3.02.00.tar.gz + ( Note: use the latest stable version) + +1.4 Install additional Ubuntu dependencies + +IMPORTANT: You should only use CPAN for Perl dependencies which are NOT + available from the package maintainer. You have been warned! + +Using the ubuntu.packages file included in the Koha source tree, +run the following: + + $ sudo dpkg --set-selections < install_misc/ubuntu.packages + +Now start dselect (you may need to 'sudo apt-get install dselect'): + + $ sudo dselect + +Choose [I]nstall and accept packages to be installed (hit return) + +(may take a while) + +Choose [C]onfigure, [R]emove and [Q]uit until dselect has completed. + +Note: If you are installing on an older version of Ubuntu, not all of the + packages listed in ubuntu.packages may be available as packages. You + will want to verify which ones are installed and which ones not. + This can be done by running the following command: + + $ install_misc/ubuntu-pkg-check.sh | grep none + +When tracking down any "(none)" results, note that sometimes Ubuntu does the +right thing and installs a later, differently named version of the package in +place. To see if this is happening, it is useful to run a command like: + + $ dpkg --get-selections | grep [base_package_name] + +1.5 Install Perl dependencies that aren't packaged into Ubuntu Lucid Lynx +sources + +Run the following command: + + $ sudo cpan HTTP::OAI Locale::Currency::Format Memoize::Memcached \ + PDF::API2::Simple Storable Text::CSV::Encoded + +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 + found on CPAN are easily accessible with the CPAN.pm module. If you + want to use CPAN.pm, you have to configure it properly. + + If you do not want to enter a dialog now, you can answer 'no' to this + question and I'll try to autoconfigure. (Note: you can revisit this + dialog anytime later by typing 'o conf init' at the cpan prompt.) + + Are you ready for manual configuration? [yes] + +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 + +2.2 Create the Koha database + + Create the database and user with associated privileges: + + $ mysqladmin -uroot -p create + $ mysql -uroot -p + + 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 .* to ''@'localhost' identified by ''; + 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 + + You will need to move the entire section for '[XML::LibXML::SAX::Parser]' + to the bottom of the ini file. + +3. Run the Koha installer + + $ perl Makefile.PL + ( answer questions ) + $ make + $ make test + $ sudo make install + +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) + +Add the following lines to /etc/apache2/ports.conf: + + Listen 80 + Listen 8080 + +If not running named virtual hosts (The default koha installation does not use +named virtual hosts.), comment out the following line: + + NameVirtualHost *:80 + +Run the following commands: + + $ sudo a2enmod rewrite + $ sudo a2ensite koha + $ 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. + +5. 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. Pick from the two available 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. + +To add a user do: + + $ sudo adduser koha + +Option 1: run the Zebra processes from the command line: + +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) + +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 + +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'). + +Option 2: run the Zebra process as a daemon, and add to startup process: + +Note that references to $SCRIPT_DIR refer to the directory where +Koha's command-line scripts are installed, e.g., /usr/share/koha/bin. + +1.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 + +1.2 Zebra Indexer + +Add an entry in Koha user crontab to scheduled added/updated/deleted records +indexing by Zebra with this command: + + /misc/migration_tools/rebuild_zebra -z -b -a + +See check misc/cronjobs/crontab.example for usage examples. +NOTE: This job should be setup under the kohauser (the default is 'koha'). + +6. Run the Web Installer, populate the database, initial configuration of settings + + Point your browser to http://:8080/ + + 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? + + Once the installer has completed, you can import and index MARC records from the + command line thusly (Note: you can also use the 'Stage MARC records for import' from + the Tools area of Koha's Staff Client to import a batch of MARC records): + + $ export KOHA_CONF=/usr/share/koha/etc/koha-conf.xml + (note: use the correct path to your koha-conf.xml) + +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 + +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'). + +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'). + +7.4 To enable public Z39.50/SRU servers, you'll need to edit your koha-conf.xml and + change the options to listen on a TCP port; then restart the zebra daemon. + +UPGRADE +======= +If you are upgrading from a previous installation of Koha 3, you can +use the following: + + perl Makefile.PL --prev-install-log /path/to/koha-install-log + make + make test + sudo make upgrade + +Uninstall Instructions +============================= +1) Stop Services: + $ sudo a2dissite koha + $ sudo rm /etc/apache2/sites-available/koha + $ sudo apache2ctl restart + + $ sudo update-rc.d koha-zebra-daemon remove + $ sudo rm /etc/init.d/koha-zebra-daemon + +2) Remove Database and Indexes + + # MySQL + $ mysql -u -p + > drop database koha; + + # Zebra Indexes + $ zebraidx -c /etc/zebradb/zebra-biblios.cfg -g iso2709 -d biblios init + $ zebraidx -c /etc/zebradb/zebra-authorities.cfg -g iso2709 -d authorities init + +3) Remove Koha Install Directories and Configuration Files + Don't forget about any crontab entries + +Tested on the following operating environments +============================================== +- Ubuntu Jaunty Jackalope 9.04 + +Installer Bug reports +===================== +Please log any installer bug reports at http://bugs.koha-community.org + +Other Notes +===================== +This file is part of Koha + +Koha is free software; you can redistribute it and/or modify it under the +terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +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. diff --git a/install_misc/ubuntu-pkg-check.sh b/install_misc/ubuntu-pkg-check.sh new file mode 100755 index 0000000000..9303082ef0 --- /dev/null +++ b/install_misc/ubuntu-pkg-check.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +UBUNTU_PACKAGES=`dirname $0`/ubuntu.packages + +# sanity checks + +if [ ! -e $UBUNTU_PACKAGES ]; then + echo ERROR: Could not find $UBUNTU_PACKAGES file for running check. + exit +fi + +# main + +UBUNTU_PACKAGES_LIST=`awk '{print $1}' $UBUNTU_PACKAGES | grep -v '^\s*#' | grep -v '^\s*$'` +for F in $UBUNTU_PACKAGES_LIST; do + UBUNTU_PKG_POLICY=`apt-cache policy $F | grep "Installed:"` + UBUNTU_PKG_VERSION=`echo $UBUNTU_PKG_POLICY | awk '{print $2}'` + echo "$F = $UBUNTU_PKG_VERSION" +done diff --git a/install_misc/ubuntu.packages b/install_misc/ubuntu.packages index 77afaa3728..8a693425b0 100644 --- a/install_misc/ubuntu.packages +++ b/install_misc/ubuntu.packages @@ -1,89 +1,121 @@ -at install -apache2 install -daemon install -libgcrypt11 install -libgcrypt11-dev install -make install -gcc install -gettext install -mysql-server install -libcgi-session-perl install -libclass-factory-util-perl install -libdate-calc-perl install -libdate-manip-perl install -libdate-ical-perl install -libdatetime-format-mail-perl install -libgraphics-magick-perl install -libmail-sendmail-perl install -liblingua-ispell-perl install -liblingua-stem-perl install -libdbd-mysql-perl install -idzebra-2.0 install -idzebra-2.0-common install -idzebra-2.0-doc install -idzebra-2.0-utils install -libclass-factory-util-perl install +apache2 install +at install +daemon install +gcc install +gettext install +make install + +# mysql packages + +mysql-server install +libmysqlclient16 install +libmysqlclient16-dev install + +# yaz packages + +yaz install +yaz-doc install +libyaz3 install +libyaz3-dev install + +# zebra packages + +idzebra-2.0 install +idzebra-2.0-common install +idzebra-2.0-doc install +idzebra-2.0-utils install +libidzebra-2.0-0 install +libidzebra-2.0-dev install +libidzebra-2.0-mod-alvis install +libidzebra-2.0-mod-grs-marc install +libidzebra-2.0-mod-grs-regx install +libidzebra-2.0-mod-grs-xml install +libidzebra-2.0-mod-text install +libidzebra-2.0-modules install + +# crypto packages + +libgcrypt11 install +libgcrypt11-dev install + +# xml/xslt packages + +libxml2 install +libxml2-dev install +libxml2-utils install +libxslt1.1 install +libxslt1-dev install + +# perl packages + +libalgorithm-checkdigits-perl install +libauthen-cas-client-perl install +libbiblio-endnotestyle-perl install +libcgi-session-perl install +libcgi-session-serialize-yaml-perl install +libclass-factory-util-perl install +libdata-ical-perl install +libdate-calc-perl install +libdate-ical-perl install +libdate-manip-perl install +libdatetime-perl install +libdatetime-format-mail-perl install libdatetime-format-strptime-perl install -libdatetime-format-w3cdtf-perl install -libdatetime-locale-perl install -libdatetime-perl install -liblist-moreutils-perl install -libdatetime-timezone-perl install -libdbi-perl install -libidzebra-2.0 install -libidzebra-2.0-dev install -libidzebra-2.0-mod-alvis install -libidzebra-2.0-mod-grs-marc install -libidzebra-2.0-mod-grs-regx install -libidzebra-2.0-mod-grs-xml install -libidzebra-2.0-mod-text install -libidzebra-2.0-modules install -libmysqlclient15-dev install -libnet-ldap-perl install -liblist-moreutils-perl install -liblocale-gettext-perl install -liblocale-po-perl install -libpdf-api2-perl install -libmime-lite-perl install -libpoe-perl install -libtext-csv-perl install -libtext-charwidth-perl install -libtext-iconv-perl install -libtext-wrapi18n-perl install -libtime-duration-perl install -libtime-format-perl install -libtimedate-perl install -libunix-syslog-perl install -libxml-dom-perl install -libxml-dumper-perl install -libxml-namespacesupport-perl install -libxml-parser-perl install -libxml-perl install -libxml-simple-perl install -libxml-regexp-perl install -libxml-xslt-perl install -libxml-libxml-perl install -libxml-libxslt-perl install -libxml2 install -libxml2-dev install -libxml2-utils install -libxslt1-dev install -libxslt1.1 install -libyaml-syck-perl install -libyaz install -libyaz-dev install -yaz install -yaz-doc install -libcgi-session-serialize-yaml-perl install -libdata-ical-perl install -libhtml-template-pro-perl install -libmarc-charset-perl install -bmarc-record-perl install -libmarc-xml-perl install -libnet-z3950-zoom-perl install -libpdf-reuse-perl install -libpdf-reuse-barcode-perl install -libsms-send-perl install -libschedule-at-perl install -libxml-rss-perl install -libmime-lite-perl install +libdatetime-format-w3cdtf-perl install +libdatetime-locale-perl install +libdatetime-timezone-perl install +libdbd-mysql-perl install +libdbd-sqlite2-perl install +libdbi-perl install +libemail-date-perl install +libgd-barcode-perl install +libgraphics-magick-perl install +libhtml-scrubber-perl install +libhtml-template-pro-perl install +liblingua-ispell-perl install +liblingua-stem-perl install +liblingua-stem-snowball-perl install +liblist-moreutils-perl install +liblocale-gettext-perl install +liblocale-po-perl install +libmail-sendmail-perl install +libmarc-charset-perl install +libmarc-crosswalk-dublincore-perl install +libmarc-record-perl install +libmarc-xml-perl install +libmime-lite-perl install +libmodule-install-perl install +libnet-ldap-perl install +libnet-server-perl install +libnet-z3950-zoom-perl install +libnumber-format-perl install +libpdf-api2-perl install +libpdf-reuse-perl install +libpdf-reuse-barcode-perl install +libpdf-table-perl install +libpoe-perl install +libschedule-at-perl install +libsms-send-perl install +libtext-charwidth-perl install +libtext-csv-perl install +libtext-iconv-perl install +libtext-wrapi18n-perl install +libtimedate-perl install +libtime-duration-perl install +libtime-format-perl install +libuniversal-require-perl install +libunix-syslog-perl install +libxml-perl install +libxml-dom-perl install +libxml-dumper-perl install +libxml-libxml-perl install +libxml-libxslt-perl install +libxml-namespacesupport-perl install +libxml-parser-perl install +libxml-regexp-perl install +libxml-rss-perl install +libxml-sax-writer-perl install +libxml-simple-perl install +libxml-xslt-perl install +libyaml-perl install +libyaml-syck-perl install -- 2.39.5