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

Версія від 11:55, 6 вересня 2013, створена Dubyk (обговореннявнесок) (Отримання останньої стабільної версій Koha 3.10.3)

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

Стосується встановлення Koha 3.10.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.12.0

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

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

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

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

perl ~/koha/koha-3.12.00/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.12.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

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

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

Пакунки з репозитарію 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'

Оновлення

cd ~/koha/koha-3.12.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.12.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:

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
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.8

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

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

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 *:8888>
  ServerName koha:8888
...

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

sudo /etc/init.d/apache2 restart

Куки

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

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

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

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

http://localhost:8888

Логін АдміністраторСистемиKoha та пароль

Update report :

   Upgrade to 3.11.00.001 done (Bug 2832 - Add alphabet syspref)
   Upgrade to 3.11.00.002 done (Bug 9030: Add constraint on aqorders_items.ordernumber)
   Upgrade to 3.11.00.003 done (Bug 7189: Add system preference RefundLostItemFeeOnReturn)
   Upgrade to 3.11.00.004 done (Bug 8782: Add field subscription.closed)
   Upgrade to 3.11.00.005 done (Bug 7919: Display of values depending on the connexion library)
   Upgrade to 3.11.00.006 done (Bug 9167: Update the virtualshelves.sortfield column with 'copyrightdate' if needed)
   Upgrade to 3.11.00.007 done (Bug 9056: add German and a couple of French translations to language_descriptions)
   Upgrade to 3.11.00.008 done (Bug 7067: Add Patron Self Registration)
   Upgrade to 3.11.00.009 done (Bug 7674: Add systempreferences SeparateHoldings, SeparateHoldingsBranch, OpacSeparateHoldings and OpacSeparateHoldingsBranch)
   Upgrade to 3.11.00.010 done (Bug 9151 - Renewal notice according to patron alert preferences)
   Upgrade to 3.11.00.011 done (Bug 8377: Add HTML5MediaEnabled and HTML5MediaExtensions sysprefs)
   Upgrade to 3.11.00.012 done (Bug 9206: Only allow place holds in records that the patron don't have in his possession)
   Upgrade to 3.11.00.013 done (Bug 9162 - Add a system preference to set which notes fields appears on title notes/description separator)
   Upgrade to 3.11.00.014 done (Bug 9009: Add SCOUserCSS and SCOUserJS sysprefs)
   Upgrade to 3.11.00.015 done (Add sysprefs RentalsInNoissuesCharge and ManInvInNoissuesCharge.)
   Upgrade to 3.11.00.016 done (Bug 9382 (updated with bug 9745) - refresh permission descriptions to make more sense)
   Upgrade to 3.11.00.017 done (Add IDreamBooks enhanced content)
   Upgrade to 3.11.00.018 done (Bug 9395: Problem with callnumber and standard number search in OPAC and Staff Client)
   Upgrade to 3.11.00.019 done (Bug 9145 - Add syspref UNIMARCAuthorityField100)
   Upgrade to 3.11.00.020 done (Bug 8347 - Koha forces UNIMARC 100 field code language to 'fre')
   Upgrade to 3.11.00.021 done (Bug 5888 - Subject search pop-up for the OPAC)
   Upgrade to 3.11.00.022 done (Bug 9587 - Allow login via Persona)
   Upgrade to 3.11.00.023 done (Bug 9520 - Update default LOC Z39.50 target)
   Upgrade to 3.11.00.024 done (Bug 5079: Add OpacItemLocation syspref)
   Upgrade to 3.11.00.025 done (Adds feature Bug 8917, the ability to track links clicked)
   Upgrade to 3.11.00.026 done (Bug 9207: Add new index batch_id_record_type to import_records)
   Upgrade to 3.11.00.027 done ( Add circ permission overdues_report )
   Upgrade to 3.11.00.028 done (Bug 9756 - Patron self registration missing the system preference PatronSelfRegistrationAdditionalInstructions)
   Upgrade to 3.11.00.029 done (Bug 9239: Make it possible for Koha to use QueryParser)
   Upgrade to 3.11.00.030 done (Add system preference FinesIncludeGracePeriod)
   Upgrade to 3.11.00.100 done (3.12-alpha release)
   Upgrade to 3.11.00.101 done (Bug 9341: Problem with UNIMARC authors facets)
   Upgrade to 3.11.00.102 done (Remove deprecated NoZebra and QueryRemoveStopwords sysprefs)
   Upgrade to 3.11.00.103 done (Bug 9827 - Remove 'insecure' system preference)
   Upgrade to 3.11.00.104 done (3.12-alpha2 release)
   Upgrade to 3.11.00.105 done (Bug 9353: Missing subfields on MARC21 frameworks)
   Upgrade to 3.11.00.106 done (Bug 7804: Added plugin system.)
   Upgrade to 3.11.00.107 done (Bug 9014: Add syspref TimeFormat)
   Upgrade to 3.11.00.108 done (Bug 7241: Fix on circulation logs)
   WARNING about bug 7241: to partially correct the broken logs, the log history is filled with the first found item for each biblio.
   Upgrade to 3.11.00.109 done (Bug 9403: Add DisplayIconsXSLT)
   Upgrade to 3.11.00.110 done (Bug 8220 - Allow koc uploads to go to process queue)
   Upgrade to 3.11.00.111 done (use new <<items.fine>> syntax in notices)
   Upgrade to 3.11.00.112 done (Bug 8365: Add colum issuingrules.renewalperiod)
   Upgrade to 3.11.00.113 done (Bug 9257 - Add groups to normal search pulldown)
   Upgrade to 3.11.00.115 done (Bug 7740: Add syspref HighlightOwnItemsOnOPAC)
   Upgrade to 3.11.00.116 done (Bug 5343: table aqorders: DROP serialid and subscription fields and ADD subscriptionid, table subscription: ADD reneweddate)
   Upgrade to 3.11.00.200 done (3.12-beta1 release)
   Upgrade to 3.11.00.201 done (Bug 9498 - Update encoding for Norwegian sample Z39.50 servers)
   Upgrade to 3.11.00.202 done (Bug 9381: Add Catalan laguage)
   Upgrade to 3.11.00.203 done (Bug 2046 - increasing title column length for suggestions)
   Upgrade to 3.11.00.300 done (3.12-beta3 release)
   Upgrade to 3.11.00.301 done (Bug 9681: Add some database indexes)
   Upgrade to 3.12.00.000 done (3.12.0 release)

Update errors :

   [Tue May 28 13:41:17 2013] updatedatabase.pl: DBD::mysql::db do failed: Duplicate entry 'UNIMARCAuthorityField100' for key 'PRIMARY' at /usr/share/koha3/intranet/cgi-bin/installer/data/mysql/updatedatabase.pl line 6413.

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

Шаблони для мов відмінних від 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 цього не потрібно (ще варто детально протестувати)

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

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 повинен бути кириличний алфавіт (згадується вище).

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

У файлі intranet/cgi-bin/members/member.pl виправити

my @letters = map { {letter => $_} } ( 'A' .. 'Z');

на

my @letters = map { {letter => $_} } (
'А','Б','В','Г','Ґ','Д','Е','Є','Ж','З','И','І','Ї','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ю',
'Я','</a>…<a>','Ў','Ё','Ъ','Ы','Э','</a>…<a>',
'A' .. 'Z');

Також у файлі intranet/cgi-bin/members/members-home.pl виправити

my @letters = map { {letter => $_} } ( 'A' .. 'Z');

на

my @letters = map { {letter => $_} } (
'А','Б','В','Г','Ґ','Д','Е','Є','Ж','З','И','І','Ї','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ю',
'Я','</a>…<a>','Ў','Ё','Ъ','Ы','Э','</a>…<a>',
'A' .. 'Z');

Відновлення індексування УДК в 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>

та у файл /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,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 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,Dewey-classification:p-->
 <index_subfields xmlns="http://www.koha-community.org/schemas/index-defs" tag="676" subfields="a">
   <target_index>Dewey-classification</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 koha3admin 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">     Call number</option>
<option value="UDC-classification,first-in-subfield">     UDC-classification</option>
<option value="Dewey-classification,first-in-subfield">     Dewey-classification</option>
<option value="bbk,first-in-subfield">     BBK</option>
<option value="LC-call-number,first-in-subfield">     LC-call-number</option>

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

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

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

додати рядки

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

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

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

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

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

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

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:8888/cgi-bin/koha/about.pl

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

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

Див. також