Оновлення Koha, встановленої з джерела

Версія від 10:53, 13 серпня 2014, створена Dubyk (обговореннявнесок) (Перевірка аналізатора SAX Parser)

Оновлення до Koha 3.16.x, встановленої з джерела

Стосується встановлення Koha 3.16.x за інструкцією „Встановлення Koha з джерела на ОС Debian“

Зміст

Резервні копії

Резервування даних

Резервуємо командою

mysqldump -u$MySQLUser -p$MySQLPassword $KohaDB > mysqldump__$time_shtamp.sql

(замість змінних $value підставляємо власні значення)

Якщо надалі буде потрібно повернутися до резервної версії, це можна буде зробити командою mysql -u$MySQLUser -p$MySQLPassword $KohaDB < mysqldump__$time_shtamp.sql, попередньо очистивши чи створивши БД $KohaDB).

Резервування програмних файлів

Виконуємо команди

tar -cvf $folder_$time_shtamp.tar $folder
bzip2 -f $folder_$time_shtamp.tar

для кожної з тек

/usr/share/koha3
/etc/apache2/sites-available/Koha3
/etc/apache2/sites-enabled/Koha3
/etc/apache2/ports.conf
/etc/koha3/
/etc/init.d/zebra-server
/etc/init.d/zebraqueue-daemon
/etc/init.d/koha-zebra-daemon
/var/log/koha3
/var/lib/koha3
/var/lock/koha3

Журнал попереднього встановлення

Дивимося у конфігураційному файлі /etc/koha3/koha-conf.xml за розміщенням журналу встановлення, напр. <config> <install_log>/usr/share/koha3/misc/koha-install-log</install_log>

Отримання останньої стабільної версій Koha 3.16.02

su АдміністраторСистемиKoha

(та вводимо пароль користувача АдміністраторСистемиKoha)

cd ~/koha;

rm koha-latest.tar.gz
wget http://download.koha-community.org/koha-latest.tar.gz
tar -xzf koha-latest.tar.gz
ls

(для наступних оновлень зручно з цього коду створити сценарій, напр., get_latest_KOHA_and_unpack.sh)

Перевірки та довстановлення пакунків

Перевірка аналізатора SAX Parser

У теці Koha виконати

perl ~/koha/koha-3.16.02/misc/sax_parser_print.pl

Ви повинні побачити щось таке

XML::LibXML::SAX::Parser=HASH(0x81fe220)

Якщо ж є PurePerl чи Expat, то необхідно поправити файл /etc/perl/XML/SAX/ParserDetails.ini (запис щодо XML::LibXML::SAX::Parser має бути найнижче)

Перевірка чи встановлені усі необхідні пакунки

Команда

perl ~/koha/koha-3.16.00/koha_perl_deps.pl -c -u -m

видасть список відсутніх модулів та модулів, які необхідно оновити.

Вам необхідно знайти та встановити ці модулі (ймовірно, що список буде порожнім, оскільки всі необхідні пакунки повинні згадуватися у цьому керівництві вище).

Відсутні модулі чи оновлені версії шукайте у гілках Debian testin/unstable, репозитарії debian.koha-community.org або ж в CPAN (Perl-модулі з CPAN встановлюються командую на кшталт „sudo cpan HTTP::OAI“).

Якщо у попередньому виводі є зауваження на кшталт такого

Warning: prerequisite DateTime::Format::DateParse 0.04 not found.
Warning: prerequisite Gravatar::URL 1.03 not found.
Warning: prerequisite DateTime::Format::ICal 0.09 not found.
Warning: prerequisite Modern::Perl 1.03 not found.
Warning: prerequisite Readonly 1.03 not found.
Warning: prerequisite Readonly::XS 1.02 not found.
Warning: prerequisite Test::Strict  not found.
Warning: prerequisite Test::YAML::Valid 0.04 not found.
Warning: prerequisite AnyEvent 5.0 not found.
Warning: prerequisite AnyEvent::HTTP 2.13 not found.
Warning: prerequisite CHI 0.36 not found.
Warning: prerequisite CHI::Driver::Memcached 0.12 not found.
Warning: prerequisite Moose 1.09 not found.
Warning: prerequisite Cache::Memcached::Fast 0.17 not found.
Warning: prerequisite DBD::Mock 1.39 not found.
Warning: prerequisite DateTime::Format::MySQL 0.04 not found.
Warning: prerequisite JSON::Any 1.28 not found.
Warning: prerequisite MooseX::Storage 0.30 not found.
Warning: prerequisite MooseX::Types 0.30 not found.
Warning: prerequisite String::RewritePrefix 0.006 not found.
Warning: prerequisite Test::Deep 0.106 not found.
Warning: prerequisite Test::MockModule 0.05 not found.
Warning: prerequisite Test::Warn 0.21 not found.
Warning: prerequisite Text::Unaccent 1.08 not found.
Warning: prerequisite Time::Progress 1.7 not found.
Warning: prerequisite Gravatar::URL 1.03 not found. We have 1.02.
Warning: prerequisite DateTime::TimeZone 1.26 not found. We have 1.20.
Warning: prerequisite Template::Plugin::HtmlToText 0.03 not found.
Warning: prerequisite Data::Paginator 0.04 not found.
Warning: prerequisite Archive::Extract 0.60 not found. We have 0.48.
Warning: prerequisite Archive::Zip 1.30 not found.
Warning: prerequisite Cache::Memory 2.04 not found.
Warning: prerequisite Module::Bundled::Files 0.03 not found.
Warning: prerequisite String::Random 0.22 not found.
Warning: prerequisite Test::WWW::Mechanize 1.44 not found.

то необхідно довстановити чи поновити згадувані пакунки…

Пакунки з репозитарію Дебіен

sudo apt-get install \
libgravatar-url-perl \
libdatetime-format-ical-perl \
libmodern-perl-perl \
libdatetime-format-dateparse-perl \
libreadonly-perl \
libreadonly-xs-perl \
libtest-strict-perl \
libtest-yaml-valid-perl \
libanyevent-perl \
libdbd-mock-perl \
libdatetime-format-mysql-perl \
libjson-any-perl \
libmoosex-storage-perl \
libmoosex-types-perl \
libstring-rewriteprefix-perl \
libtest-deep-perl \
libtest-mockmodule-perl \
libtest-warn-perl \
libtext-unaccent-perl \
libtime-progress-perl \
libarchive-zip-perl \
libcache-perl \
libstring-random-perl \
libtest-www-mechanize-perl \
libcrypt-eksblowfish-perl \
liblibrary-callnumber-lc-perl \
libdbix-class-schema-loader-perl \
libemail-valid-perl \
liblocale-maketext-lexicon-perl \
libopenoffice-oodoc-perl

Пакунки з тестового репозитарію Дебіен

sudo apt-get -t testing install \
libgravatar-url-perl \
libdatetime-timezone-perl \
libtemplate-plugin-htmltotext-perl \
libanyevent-http-perl \
libchi-perl \
libchi-driver-memcached-perl \
libmouse-perl \
libcache-memcached-fast-perl \
libarchive-extract-perl \
libmarc-record-perl \
libmarc-xml-perl

Пакунки з репозитарію Koha

Деякі perl-пакунки ще не пакетизовані в офіційних репозитаріях Дебіен (перевіряємо libdata-paginator-perl та libtemplate-plugin-htmltotext-perl, libmodule-bundled-files-perl). Однак відповідні deb-пакети можна знайти в репозитарії debian.koha-community.org.

Підключаємо у файлі /etc/apt/sources.list

deb http://debian.koha-community.org/koha squeeze main
   

Також додаємо ключ gpg.asc до довірених ключів APT:

wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -

Оновлюємо список доступних для встановлення пакунків

apt-get update

Встановлюємо пакунки з репозитарію Koha

sudo apt-get install \
libdata-paginator-perl \
libtemplate-plugin-htmltotext-perl \
libmodule-bundled-files-perl

Пакунки з CPAN

Якщо пакунок все таки не вдалося знайти в одному з репозитаріїв — встановлюємо з CPAN.

Наприклад, можуть бути й зауваження такого роду:

Warning: prerequisite Data::Pagination 0.44 not found.

Цей Perl-модуль ще не доступний в жодному з репозиторіїв Дебіен (перевірити в Debian: libdata-pagination-perl). Встановлюємо командою

sudo perl -MCPAN -e 'install Data::Pagination'

Для таких зауважень

HTTPD::Bench::ApacheBench                     0                 0.73                    No
Test::WWW::Mechanize                          1.42              1.44                    No

— встановлюємо

sudo perl -MCPAN -e 'install HTTPD::Bench::ApacheBench'
sudo perl -MCPAN -e 'install Test::WWW::Mechanize'

Оновлення

cd ~/koha/koha-3.16.00/; perl Makefile.PL --prev-install-log /usr/share/koha3/misc/koha-install-log

у випадку оновлення 3.6-3.12 з’явилася можливість налаштувати Zebra для кращої підтримки Unicode-символів. Вибираємо icu:

Zebra has two methods to perform records tokenization
and characters normalization: CHR and ICU. ICU is
recommended for catalogs containing non-Latin
characters. (chr, icu) [chr] icu

у випадку оновлення 3.8.2-3.8.3 з’явився більш прогресивний режим індексації Zebra за допопогою фільтра DOM XML. Вибираємо dom:

Koha can use one of  two different indexing modes
for the MARC bibliographic records:

grs1 - uses the Zebra GRS-1 filter, available
       for legacy support
dom  - uses the DOM XML filter; offers improved
       functionality.

Bibliographic indexing mode (dom, grs1) [dom] 

далі решту запитань і вивід —

Reading values from install log /usr/share/koha3/misc/koha-install-log.  You
will be prompted only for settings that have been
added since the last time you installed Koha.  To
be prompted for all settings, run 'perl Makefile.PL'
without the --prev-install-log option.

Found 'zebrasrv' and 'zebraidx' in /usr/bin.

Koha will be installed with the following configuration parameters:

AUTH_INDEX_MODE          dom
BIB_INDEX_MODE           dom
DB_HOST                  localhost
DB_NAME                  Koha3
DB_PASS                  ПарольКористувачаБДKoha3
DB_PORT                  3306
DB_TYPE                  mysql
DB_USER                  КористувачБДKoha3
INSTALL_BASE             /usr/share/koha3
INSTALL_MODE             standard
INSTALL_PAZPAR2          yes
INSTALL_SRU              yes
INSTALL_ZEBRA            yes
KOHA_GROUP               АдміністраторСистемиKoha
KOHA_INSTALLED_VERSION   3.16.00.000
KOHA_USER                АдміністраторСистемиKoha
MEMCACHED_NAMESPACE      KOHA
MEMCACHED_SERVERS        127.0.0.1:11211
MERGE_SERVER_HOST        localhost
MERGE_SERVER_PORT        11001
PATH_TO_ZEBRA            /usr/bin
PAZPAR2_HOST             localhost
PAZPAR2_PORT             11002
RUN_DATABASE_TESTS       no
USE_MEMCACHED            yes
ZEBRA_LANGUAGE           uk
ZEBRA_MARC_FORMAT        unimarc
ZEBRA_PASS               ПарольКористувачаZebra
ZEBRA_SRU_AUTHORITIES_POR9999
ZEBRA_SRU_BIBLIOS_PORT   9998
ZEBRA_SRU_HOST           localhost
ZEBRA_TOKENIZER          icu
ZEBRA_USER               КористувачZebra

and in the following directories:

BACKUP_DIR               $(DESTDIR)/var/spool/koha3
DOC_DIR                  $(DESTDIR)/usr/share/koha3/doc
INTRANET_CGI_DIR         $(DESTDIR)/usr/share/koha3/intranet/cgi-bin
INTRANET_TMPL_DIR        $(DESTDIR)/usr/share/koha3/intranet/htdocs/intranet-tmpl
INTRANET_WWW_DIR         $(DESTDIR)/usr/share/koha3/intranet/htdocs
KOHA_CONF_DIR            $(DESTDIR)/etc/koha3
LOG_DIR                  $(DESTDIR)/var/log/koha3
MAN_DIR                  $(DESTDIR)/usr/share/koha3/man
MISC_DIR                 $(DESTDIR)/usr/share/koha3/misc
OPAC_CGI_DIR             $(DESTDIR)/usr/share/koha3/opac/cgi-bin
OPAC_TMPL_DIR            $(DESTDIR)/usr/share/koha3/opac/htdocs/opac-tmpl
OPAC_WWW_DIR             $(DESTDIR)/usr/share/koha3/opac/htdocs
PAZPAR2_CONF_DIR         $(DESTDIR)/etc/koha3/pazpar2
PERL_MODULE_DIR          $(DESTDIR)/usr/share/koha3/lib
PLUGINS_DIR              $(DESTDIR)/var/lib/koha3/plugins
SCRIPT_DIR               $(DESTDIR)/usr/share/koha3/bin
SCRIPT_NONDEV_DIR        $(DESTDIR)/usr/share/koha3/bin
ZEBRA_CONF_DIR           $(DESTDIR)/etc/koha3/zebradb
ZEBRA_DATA_DIR           $(DESTDIR)/var/lib/koha3/zebradb
ZEBRA_LOCK_DIR           $(DESTDIR)/var/lock/koha3/zebradb
ZEBRA_RUN_DIR            $(DESTDIR)/var/run/koha3/zebradb

To change any configuration setting, please run
perl Makefile.PL again.  To override one of the target
directories, you can do so on the command line like this:

perl Makefile.PL PERL_MODULE_DIR=/usr/share/perl/5.14

You can also set different default values for parameters
or override directory locations by using environment variables.

For example:

export DB_USER=my_koha
perl Makefile.PL

or

DB_USER=my_koha DOC_DIR=/usr/local/info perl Makefile.PL

If installing on a Win32 platform, be sure to use:
'dmake -x MAXLINELENGTH=300000'

Writing Makefile for koha
Writing MYMETA.yml

Компіляція та встановлення

make
make test
sudo make upgrade

Поправити налаштування хоста Apache

sudo mc -e /etc/koha3/koha-httpd.conf
/etc/koha3/koha-httpd.conf

...
<VirtualHost *:80>
  ServerName koha
...
...
<VirtualHost *:8080>
  ServerName koha:8080
...

та перезапустити сервер Apache

sudo /etc/init.d/apache2 restart

Куки

Інколи при оновленні між версіями, при спробі доступу до веб-інтерфейсу з’являється у оглядачі помилка на зразок

Koha Byte order is not compatible at Storable.pm line  Auth.pm 

Вирішує проблему очищення куків в оглядачі для даного домену.

Продовжуємо оновлення через веб-інтерфейс

http://localhost:8080

Вводимо логін АдміністраторСистемиKoha та пароль, оновлюємо БД:

Ми модернізуємо Коха від версії 3.14.06.000 до 3.16.00.000, Ви повинні також оновити Вашу баз даних 
Звіт про оновлення:

   Upgrade to 3.15.00.000 done (the road goes ever on)
   Upgrade to 3.15.00.001 done (Bug 11040: Add option to print full slip when checking out a null barcode)
   Upgrade to 3.15.00.002 done (Bug 11275: alter deleteditems.materials from varchar(10) to text)
   Upgrade to 3.15.00.003 done (Bug 2546: Update fine descriptions)
   Upgrade to 3.15.00.004 done (Bug 10970 - Update MARC21 frameworks to Update Nr. 17 - DB update)
   Upgrade to 3.15.00.005 done (Bug 8230: Add AcquisitionDetails system preference)
   Upgrade to 3.15.00.006 done (Bug 11249 - Add DB indexes on borrower names)
   Upgrade to 3.15.00.007 done (Bug 9673 - Track when items are marked as lost or withdrawn)
   Upgrade to 3.15.00.008 done (Bug 11384) - change name of collections_tracker.ctId column)
   Upgrade to 3.15.00.009 done (Bug 11391) - drop default value on suggestions.suggesteddate column)
   Upgrade to 3.15.00.010 done (Bug 6331: remove obsolete column in deleteditems.marc)
   Upgrade to 3.15.00.011 done (Bug 8018: set 9999 as default max length for subfields)
   Upgrade to 3.15.00.012 done (Bug 10863 - Add permissions force_checkout and manage_restrictions)
   Upgrade to 3.15.00.013 done (Bug 11237: Update explanation and default value for AcqItemSetSubfieldsWhenReceived syspref)
   Upgrade to 3.15.00.014 done (Bug 11415: add system preference for automatic self checkout receipt printing)
   Upgrade to 3.15.00.015 done (Bug 10907: Add OpacSuggestionManagedBy system preference)
   Upgrade to 3.15.00.016 done (Bug 11268 - Biblioitems URL field is too small for some URLs)
   Upgrade to 3.15.00.017 done (Bug 11611 - fix possible confusion between UNIMARC and MARC21 in some sysprefs)
   Upgrade to 3.15.00.018 done (Bug 7372: Move road types from the roadtype table to the ROADTYPE authorised values)
   Upgrade to 3.15.00.019 done (Bug 11256: Add system preference OpacMaxItemsToDisplay)
   Upgrade to 3.15.00.020 done (Bug 11343: Add system preference MaxItemsForBatch )
   Upgrade to 3.15.00.021 done (Bug 3445: Add indexes to action_logs table)
   Upgrade to 3.15.00.022 done (Bug 11751: Remove memberofinstitytion system preference)
   Upgrade to 3.15.00.023 done (Bug 10861: Add CardnumberLength syspref)
   Upgrade to 3.15.00.024 done (Bug 10012 - remove last vestiges of NoZebra)
   Upgrade to 3.15.00.025 done (Bug 11928 - remove unused table)
   Upgrade to 3.15.00.026 done (Bug 11973 - Fix Armenian language description)
   Upgrade to 3.15.00.027 done (Bug 7567: Add branchcode to opac_news)
   Upgrade to 3.15.00.028 done (Bug 7413: Allow OPAC renewal x days before due date)
   Upgrade to 3.15.00.029 done (Bug 11846 - correct borrower_debarments with expiration 9999-12-31)
   Upgrade to 3.15.00.030 done (Bug 12052: Add OPACMySummaryNote syspref)
   Upgrade to 3.15.00.031 done (Bug 9448 - Add separate permission for writing off fees)
   Upgrade to 3.15.00.032 done (Bug 9416 - In each order, add a new note made for the vendor)
   Upgrade to 3.15.00.033 done (Bug 10951: Add NoLoginInstructions pref)
   Upgrade to 3.15.00.034 done (Bug 10986: system preferences to limit languages in advanced search )
   Upgrade to 3.15.00.035 done (Bug 9032: Share a list)
   Upgrade to 3.15.00.036 done (Bug 10859 - Add system preference AllowMultipleIssuesOnABiblio)
   Upgrade to 3.15.00.037 done (Bug 11351 - Add support for SIP2 media type)
   Upgrade to 3.15.00.038 done (Bug 11334 - Add facet for home library)
   Upgrade done (Bug 9016: Adds multi transport types management for notices)
   Upgrade to 3.15.00.040 done (Bug 10845: Multi transport types for holds)
   Upgrade to 3.15.00.041 done (Bug 11867: Update letters *_PHONE)
   Upgrade to 3.15.00.042 done (Bug 10694 - Allow arbitrary backdating of returns)
   Upgrade to 3.15.00.043 done (Bug 7180: Added MarcFieldsToOrder syspref)
   Upgrade to 3.15.00.044 done (Added isocode to the currency table)
   Upgraded to 3.15.00.045 done (Bug 6739 - expired patrons not blocked from opac actions)
   Upgrade to 3.15.00.046 done (Bug 10807 - Add db field search_history.type)
   Upgrade to 3.15.00.047 done (Bug 10862: Add EnableSearchHistory syspref)
   Upgrade to 3.15.00.048 done (Bug 10195: Records hidden with OpacSuppression can still be accessed)
   Upgrade to 3.15.00.049 done (Bug 11268 - Biblioitems URL field is too small for some URLs)
   Upgrade to 3.15.00.050 done (Bug 10500 - Improve isbn matching when importing records)
   Upgrade to 3.15.00.051 done (Koha 3.16 beta)
   Upgrade to 3.15.00.052 done (Koha 3.16 RC)
   Upgrade to 3.16.00.000 done (3.16.0 release)

Помилки при оновленні:

   [Fri May 23 11:48:32 2014] updatedatabase.pl: DBD::mysql::db do failed: Duplicate key name 'surname_idx' at /usr/share/koha3/intranet/cgi-bin/installer/data/mysql/updatedatabase.pl line 7841.
   [Fri May 23 11:48:38 2014] updatedatabase.pl: DBD::mysql::db do failed: Unknown column 'ctId' in 'collections_tracking' at /usr/share/koha3/intranet/cgi-bin/installer/data/mysql/updatedatabase.pl line 7863.
   [Fri May 23 11:48:38 2014] updatedatabase.pl: DBD::mysql::db do failed: Can't DROP 'marc'; check that column/key exists at /usr/share/koha3/intranet/cgi-bin/installer/data/mysql/updatedatabase.pl line 7881.


Все пройшло добре, оновлення зроблено.
Продовжуємо та входимо до Коха

Поновлення мовних шаблонів

Усі шаблони для мов відмінних від en залишаються старі — необхідно оновити, напр. для укр. та рос.:

cd /usr/share/koha3/misc/translator/;sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib "./translate" install uk-UA
cd /usr/share/koha3/misc/translator/;sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib "./translate" install ru-RU

Бажано після цього перезапустити й службу memcached

sudo /etc/init.d/memcached restart


Відновлення Zebra

Поновлювач перезаписує файл

/etc/koha3/zebradb/etc/word-phrase-utf.chr

витираючи набори кириличних символів й апостроф, необхідні для працездатності пошуку Zebra, отож виправляємо у цьому файлі на наступне:

lowercase {0-9}{a-z}æäåąßćęłńóśøöüźżабвгдежзийклмнопрстуфхцчшщьыъэюяёєїґўі’
uppercase {0-9}{A-Z}ÆÄÅĄẞĆĘŁŃÓŚØÖÜŹŻАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯЁЄЇҐЎІ’

space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~{\x88-\x89}{\x98-\x9C}

Зауваження: ймовірно, при виборі ICU цього не потрібно (ще варто детально протестувати)

Також для коректного сортування кирилиці аналогічні зміни також потрібно внести і до файлу

/etc/koha3/zebradb/lang_defs/en/sort-string-utf.chr 

(наявність uk/sort-string-utf.chr наразі не дає бажаного результату).

Переіндексація БД

sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib \
 /usr/share/koha3/bin/migration_tools/rebuild_zebra.pl -b -r -x -v
     
sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib \
 /usr/share/koha3/bin/migration_tools/rebuild_zebra.pl -a -r -v

Зауваження щодо ICU

Використання ICU, ймовірно, ще потребує дослідження. На великій БД з'явилась помилка при переіндесації Zebra:

...
*** glibc detected *** zebraidx: corrupted double-linked list: 0x09d57700 ***
...

Згадки по цій проблемі: http://lists.nongnu.org/archive/html/koha-zebra/2011-06/msg00001.html http://irc.koha-community.org/irclog/koha/2011-05-29

Лише у випадку, якщо присутня така проблема з індексацією, пробуємо відключити ICU у файлі /etc/koha3/zebradb/etc/default.idx, замінивши у двох рядках

icuchain words-icu.xml

на

charmap word-phrase-utf.chr

Також у файлі /etc/koha3/zebradb/etc/word-phrase-utf.chr повинен бути кириличний алфавіт (згадується вище).

Відновлення алфавітного вибору читачів (застаріло)

З версії 3.12 алфавіт для вибору читачів можна вказувати у системній змінній alphabet.

Відновлення індексування УДК в Zebra

Кроки:

1) У файлі /etc/koha3/zebradb/biblios/etc/bib1.att вже є необхідний рядок

att 14    UDC-classification

2) У файлі /etc/koha3/zebradb/ccl.properties знаходимо абзац

#Classification-UDC     14  A classification number from    080
#                           Universal Decimal
#                           Classification, a system based
#                           on the Dewey Decimal
#                           Classification.
#UDC-classification 1=14

та розкоментовуємо

UDC-classification 1=14

3) Далі для Unimarc у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/record.abs потрібно додати

melm 675$a      UDC-classification:w,UDC-classification:p

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

у файл /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl додати

     <xslo:template mode="index_subfields" match="marc:datafield[@tag='675']">
       <xslo:for-each select="marc:subfield">
         <xslo:if test="contains('a', @code)">
           <z:index name="UDC-classification:w UDC-classification:p">
             <xslo:value-of select="."/>
           </z:index>
         </xslo:if>
       </xslo:for-each>
     </xslo:template>

та у файл /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml додати

     <------>UDC-classification:w,UDC-classification:p-->
     <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="675" subfields="a">
       <target_index>UDC-classification:w</target_index>
       <target_index>UDC-classification:p</target_index>
     </index_subfields>

Далі для Marc21 у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/record.abs:

melm 080        UDC-classification:w,UDC-classification:s

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl має бути (є)

  <xslo:template mode="index_data_field" match="marc:datafield[@tag='080']">
   <z:index name="UDC-classification:w UDC-classification:s">
     <xslo:variable name="raw_heading">
       <xslo:for-each select="marc:subfield">
         <xslo:if test="position() > 1">
           <xslo:value-of select="substring(' ', 1, 1)"/>
         </xslo:if>
         <xslo:value-of select="."/>
       </xslo:for-each>
     </xslo:variable>
     <xslo:value-of select="normalize-space($raw_heading)"/>
   </z:index>
 </xslo:template>

та у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml має бути (є)

<index_data_field xmlns="http://www.koha-community.org/schemas/index-defs" tag="080">
  <target_index>UDC-classification:w</target_index>
  <target_index>UDC-classification:s</target_index>
</index_data_field>

4) Також потрібно у файлі /usr/share/koha3/lib/C4/Search.pm у масив @indexes додати елемент-індекс

'UDC-classification',

Відновлення індексування ББК в Zebra

Кроки:

1) У файлі /etc/koha3/zebradb/biblios/etc/bib1.att є рядок

att 1040    Classification

Виглядає так, що він не використовується надалі. Отож замінюємо його на такий

att 1040    bbk

2) У файлі /etc/koha3/zebradb/ccl.properties повинен бути наступний рядок

#bbk     1040  Soviet Bibliothecal-Bibliographic Classification (BBK; LBC)
bbk 1=1040

3) Далі для Unimarc у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/record.abs потрібно додати

melm 686$a      bbk,bbk:p

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

у файл /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl додати

<xslo:template mode="index_subfields" match="marc:datafield[@tag='686']">
  <xslo:for-each select="marc:subfield">
    <xslo:if test="contains('a', @code)">
      <z:index name="bbk bbk:p">
        <xslo:value-of select="."/>
      </z:index>
    </xslo:if>
  </xslo:for-each>
</xslo:template>

або, якщо є 686-секція, то вставити в неї

  <xslo:for-each select="marc:subfield">
    <xslo:if test="contains('a', @code)">
      <z:index name="bbk bbk:p">
        <xslo:value-of select="."/>
      </z:index>
    </xslo:if>
  </xslo:for-each>

та у файл /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml додати

<------>bbk,bbk:p-->
<index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="686" subfields="a">
  <target_index>bbk</target_index>
  <target_index>bbk:p</target_index>
</index_subfields>

Далі для Marc21 у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/record.abs:

melm 084        bbk:w,bbk:s

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl має бути (є)

  <xslo:template mode="index_data_field" match="marc:datafield[@tag='084']">
   <z:index name="bbk:w bbk:s">
     <xslo:variable name="raw_heading">
       <xslo:for-each select="marc:subfield">
         <xslo:if test="position() > 1">
           <xslo:value-of select="substring(' ', 1, 1)"/>
         </xslo:if>
         <xslo:value-of select="."/>
       </xslo:for-each>
     </xslo:variable>
     <xslo:value-of select="normalize-space($raw_heading)"/>
   </z:index>
 </xslo:template>

та у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml має бути (є)

<index_data_field xmlns="http://www.koha-community.org/schemas/index-defs" tag="084">
  <target_index>bbk:w</target_index>
  <target_index>bbk:s</target_index>
</index_data_field>

4) Також потрібно у файлі /usr/share/koha3/lib/C4/Search.pm у масив @indexes додати елемент-індекс

'bbk',

Відновлення індексування ДКД (Дьюї) в Zebra

Кроки:

1) У файлі /etc/koha3/zebradb/biblios/etc/bib1.att вже є необхідний рядок

att 13    Dewey-classification

2) У файлі /etc/koha3/zebradb/ccl.properties находимо абзац

#Classification-Dewey   13  A classification number from    082
#                           the Dewey Decimal
#                           Classification, developed by
#                           Melvyl Dewey.
#Dewey-classification 1=13

та розкоментовуємо

Dewey-classification 1=13

3) Далі для Unimarc у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/record.abs повинно бути (є)

melm 676$a      Dewey-classification:w,Dewey-classification:p

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl має бути (є)

 <xslo:template mode="index_subfields" match="marc:datafield[@tag='676']">
   <xslo:for-each select="marc:subfield">
     <xslo:if test="contains('a', @code)">
       <z:index name="Dewey-classification:w Dewey-classification:p">
         <xslo:value-of select="."/>
       </z:index>
     </xslo:if>
   </xslo:for-each>
 </xslo:template>

та у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml має бути (є)

 Dewey-classification:w,Dewey-classification:p-->
 <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="676" subfields="a">
   <target_index>Dewey-classification:w</target_index>
   <target_index>Dewey-classification:p</target_index>
 </index_subfields>

Далі для Marc21 у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/record.abs:

melm 082        Dewey-classification:w,Dewey-classification:s

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

Додаково внести зміни й у /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl:

<xslo:template mode="index_data_field" match="marc:datafield[@tag='082']">
   <z:index name="Dewey-classification:w Dewey-classification:s">
     <xslo:variable name="raw_heading">
       <xslo:for-each select="marc:subfield">
         <xslo:if test="position() > 1">
           <xslo:value-of select="substring(' ', 1, 1)"/>
         </xslo:if>
         <xslo:value-of select="."/>
       </xslo:for-each>
     </xslo:variable>
     <xslo:value-of select="normalize-space($raw_heading)"/>
   </z:index>
 </xslo:template>

та /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml:

<index_data_field xmlns="http://www.koha-community.org/schemas/index-defs" tag="082">
 <target_index>Dewey-classification:w</target_index>
 <target_index>Dewey-classification:s</target_index>
</index_data_field>

4) Також потрібно у файлі /usr/share/koha3/lib/C4/Search.pm у масиві @indexes має бути (є) елемент-індекс

'Dewey-classification',

Відновлення індексування КБК (клас. Бібліотеки Конгресу) в Zebra

Кроки:

1) У файлі /etc/koha3/zebradb/biblios/etc/bib1.att вже є необхідний рядок

att 16    LC-call-number

2) У файлі /etc/koha3/zebradb/ccl.properties находимо абзац

#Classification-LC      16  A classification number from    050
#                           the US Library of Congress
#                           Classification.
#LC-call-number 1=16

та розкоментовуємо

LC-call-number 1=16

3) Далі для Unimarc у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/record.abs повинно бути (є)

melm 680$b    LC-call-number:s
melm 680      LC-call-number

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl має бути (є)

<xslo:template mode="index_subfields" match="marc:datafield[@tag='680']">
   <xslo:for-each select="marc:subfield">
     <xslo:if test="contains('b', @code)">
       <z:index name="LC-call-number:s">
         <xslo:value-of select="."/>
       </z:index>
     </xslo:if>
   </xslo:for-each>
</xslo:template>

<xslo:template mode="index_data_field" match="marc:datafield[@tag='680']">
   <z:index name="LC-call-number:w">
     <xslo:variable name="raw_heading">
       <xslo:for-each select="marc:subfield">
         <xslo:if test="position() > 1">
           <xslo:value-of select="substring(' ', 1, 1)"/>
         </xslo:if>
          <xslo:value-of select="."/>
       </xslo:for-each>
     </xslo:variable>
     <xslo:value-of select="normalize-space($raw_heading)"/>
   </z:index>
</xslo:template>

та у файлі /etc/koha3/zebradb/marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml має бути (є)

<------>LC-call-number:s-->
<index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="680" subfields="b">
  <target_index>LC-call-number:s</target_index>
</index_subfields>
<------>LC-call-number-->
<index_data_field xmlns="http://www.koha-community.org/schemas/index-defs" tag="680">
  <target_index>LC-call-number:w</target_index>
</index_data_field>

Далі для Marc21 у файлі /etc/koha3/zebradb/marc_defs/marc21/biblios/record.abs:

melm 050$b      LC-call-number:w,LC-call-number:p,LC-call-number:s
melm 050        LC-call-number:w,LC-call-number:p,LC-call-number:s

Ймовірно, що record.abs застарілий і тепер потрібно вносити зміни в XSL-файли...

Додаково внести зміни й у /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl:

<xslo:template mode="index_subfields" match="marc:datafield[@tag='050']">
  <xslo:for-each select="marc:subfield">
    <xslo:if test="contains('b', @code)">
      <z:index name="LC-call-number:w LC-call-number:p LC-call-number:s">
        <xslo:value-of select="."/>
      </z:index>
    </xslo:if>
  </xslo:for-each>
</xslo:template>

<xslo:template mode="index_data_field" match="marc:datafield[@tag='050']">
  <z:index name="LC-call-number:w LC-call-number:p LC-call-number:s">
    <xslo:variable name="raw_heading">
      <xslo:for-each select="marc:subfield">
        <xslo:if test="position() > 1">
          <xslo:value-of select="substring(' ', 1, 1)"/>
        </xslo:if>
        <xslo:value-of select="."/>
      </xslo:for-each>
    </xslo:variable>
    <xslo:value-of select="normalize-space($raw_heading)"/>
  </z:index>
</xslo:template>

та /etc/koha3/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml:

<index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="050" subfields="b">
  <target_index>LC-call-number:w</target_index>
  <target_index>LC-call-number:p</target_index>
  <target_index>LC-call-number:s</target_index>
</index_subfields>
<index_data_field xmlns="http://www.koha-community.org/schemas/index-defs" tag="050">
  <target_index>LC-call-number:w</target_index>
  <target_index>LC-call-number:p</target_index>
  <target_index>LC-call-number:s</target_index>
</index_data_field>

4) Також потрібно у файлі /usr/share/koha3/lib/C4/Search.pm у масиві @indexes має бути (є) елемент-індекс

'LC-call-number',

Утворення індексів УДК, Дьюї, ББК, КБК та можливість пошуку за ними

Для витягнення означених класифікаційних індексів запускаємо переіндексацію Zebra

sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib \
   /usr/share/koha3/bin/migration_tools/rebuild_zebra.pl -b -r -x -v

ЕК) У файлі /usr/share/koha3/opac/htdocs/opac-tmpl/prog/en/modules/opac-advsearch.tt

замість рядка

<option value="callnum">Call number</option>

додати рядки

<option value="sn">Standart number</option>
<option value="callnum">&nbsp;&nbsp;&nbsp;&nbsp; Call number</option>
<option value="UDC-classification,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; UDC-classification</option>
<option value="Dewey-classification,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; Dewey-classification</option>
<option value="bbk,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; BBK</option>
<option value="LC-call-number,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; LC-call-number</option>

Біб. інтерфейс) У файлі /usr/share/koha3/intranet/htdocs/intranet-tmpl/prog/en/includes/search_indexes.inc

замість рядка

<option value="callnum">&nbsp;&nbsp;&nbsp;&nbsp; Call number</option>

додати рядки

<option value="callnum">&nbsp;&nbsp;&nbsp;&nbsp; Call number</option>
<option value="UDC-classification,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; UDC-classification</option>
<option value="Dewey-classification,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; Dewey-classification</option>
<option value="bbk,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; BBK</option>
<option value="LC-call-number,first-in-subfield">&nbsp;&nbsp;&nbsp;&nbsp; LC-call-number</option>

Відповідно також потрібно перегенерувати мовні шаблони, напр. для укр. та рос.:

cd /usr/share/koha3/misc/translator
sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib "./translate" install uk-UA
sudo -u АдміністраторСистемиKoha env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib "./translate" install ru-RU

Відновлення налаштування за класифікацією

Типово це не працює для використовуваного класифікаційного індексу (УДК, ББК, ДДК) і при оновленні вертається типовий варіант.

Декілька кроків:

1) build_browser_and_cloud.pl з інтегрованими таблицями УДК, ББК, ДДК для української.

Файл build_browser_and_cloud.pl можна знайти у теці PUBLIC хмарного сховища [htp://db.tt/ExL7MRZ Dropbox] Сергія Дубика.

Розміщуємо файл за шляхом /usr/share/koha3/bin/cronjobs

2) До таблиці „browser“ додати колонки „class_source“ та “language“

sql-команди для додавання

ALTER TABLE browser ADD class_source varchar(10);
ALTER TABLE browser ADD language varchar(25);
ALTER TABLE browser ADD parent_class varchar(255);
ALTER TABLE browser ADD query mediumtext;

Додатково: тип колонки „description“ змінити на „mediumtext“, тип колонки „classification“ змінити на „varchar(255)“.

3) Для періодичного оновлення ієрархії класифікаційних індексів (УДК, скорочені табл.) необхідно періодично (crontab) запускати сценарій

env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=usr/share/koha3/lib perl -I /usr/share/koha3/lib build_browser_and_cloud.pl \
   -b -f 675a -t 606 -c -m 3 -s udc -l uk_UA

для ДДК (скорочені табл. Дьюї) параметри:

  -b -f 676a -t 606 -c -m 3 -k ddc -l uk_UA

для ББК (скорочені таблиці ББК для наукових бібліотек) параметри:

  -b -f 686a -t 606 -c -m 3 -k rubbk -l uk_UA

4) Також змінюємо файл /usr/share/koha3/opac/htdocs/opac-tmpl/prog/en/modules/opac-browser.tt

Замінюємо рядок з пошуковим запитом

opac-search.pl?q=Dewey-classification

для УДК на

opac-search.pl?q=UDC-classification,first-in-subfield

для ББК на

opac-search.pl?q=bbk,first-in-subfield

для ДДК (Дьюї) на

opac-search.pl?q=Dewey-classification,first-in-subfield

Шаблон opac-browser.tt для мов відмінних від en залишається старий — необхідно теж оновити, напр. для укр. та рос.:

cd /usr/share/koha3/misc/translator/;sudo env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib "./translate" install uk-UA
cd /usr/share/koha3/misc/translator/;sudo env KOHA_CONF=/etc/koha3/koha-conf.xml PERL5LIB=/usr/share/koha3/lib perl -I /usr/share/koha3/lib "./translate" install ru-RU

P.S. Ще не реалізований у файлі build_browser_and_cloud.pl переклад терму "classification $_" у рядку

$sth->execute(length($_),$_,$classification->{$_}?$classification->{$_}:"classification $_",$browser_result{$_}->{value},

Оновлення завершено

Заходимо у інтерфейс бібліотекаря. Бачимо зміну версії за адресою http://localhost:8080/cgi-bin/koha/about.pl

Налаштування

Щодо додаткових налаштувань та адаптацій див. тут: Налаштування Koha, встановленої з джерела.

Див. також