Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2015-02-09

Как ставить Zope 2.10.7 и Naudoc 6 на Debian 7 amd64

Продолжим эксгумировать СЭД Наудок.
Ранее мы установили Python 2.4 на Debian 7 amd64, теперь посмотрим, как ставить Zope 2.10.7 и сам Naudoc 6. Вместе с сопутствующими библиотеками.

Кстати, если используете утилиту script для сохранения консольного вывода, не забывайте заканчивать ее работу надавив ^d или набрав exit.

Установка пакета egenix-mx-base
The eGenix.com mx Base Distribution for Python is a collection of professional quality software tools which enhance Python's usability in many important areas such as fast text searching, date/time processing and high speed data types.

su -l
tar xvzf /home/valik/t/NauDoc-6/egenix-mx-base-3.2.7.tar.gz
pushd /home/valik/t/NauDoc-6/egenix-mx-base-3.2.7
script -t 2>~/egenix.time ~/egenix.script
/opt/python24/bin/python setup.py install

Без приключений, что не может не радовать.

Нам надо, чтобы Naudoc/Zope работало в режиме демона (службы). Для этого придется создать пользователя, от имени которого будет работать Zope, создать каталоги, в которых будет расположены программы

su -l
adduser zope
mkdir /opt/zope
chown zope /opt/zope
mkdir /opt/naudoc
chown zope /opt/naudoc

Компиляция и установка Zope

su -l zope
tar zxf /home/valik/t/NauDoc-6/Zope-2.10.7-final.tgz
pushd /home/zope/Zope-2.10.7-final
script -t 2>~/zope.time ~/zope.script
./configure --prefix=/opt/zope --with-python=/opt/python24/bin/python
make clean
make
make install
/opt/python24/bin/python /opt/zope/bin/mkzopeinstance.py --dir=/opt/naudoc
В процессе были заданы имя админа инстанса его пароль.

Правка конфига инстанса
Наудок хочет однобайтовую кодировку cp1251

nano /opt/naudoc/etc/zope.conf
...
default-zpublisher-encoding windows-1251
effective-user zope

Распаковка и копирование (установка) NauDoc
Установка NauDoc сводится, в основном, к копированию всякого внутрь инстанса

cd ~
mkdir nd
cd nd
unzip /home/valik/t/NauDoc-6/NauDoc-6.zip
cp -R Products/* /opt/naudoc/Products/
cp -R var/Data.fs /opt/naudoc/var/
cp -R lib/* /opt/naudoc/lib/
cp -R Extensions/* /opt/naudoc/Extensions/
Упомянутый в документации zopeedit в дистрибутиве найден не был :(
Впрочем, он особо и не нужен никому.

Установка индексатора текста TextIndexNG2

pushd /opt/naudoc/Products/TextIndexNG2/
script -t 2>~/zope.time -a ~/zope.script
/opt/python24/bin/python setup.py build
su -l
pushd /opt/naudoc/Products/TextIndexNG2/
/opt/python24/bin/python setup.py install

Пробный запуск Zope/NauDoc

su -l zope
/opt/naudoc/bin/zopectl start

Информация о местоположении ключевых элементов

Из управлятора Zope, после его запуска, можно увидеть, где расположены ключевые элементы системы

SOFTWARE_HOME /opt/zope/lib/python
ZOPE_HOME /opt/zope
INSTANCE_HOME /opt/naudoc
CLIENT_HOME /opt/naudoc/var

product_version 6.4.1

Опциональные библиотеки
Установка библиотек, не влияющих на запуск системы

PIL
su -l
aptitude install libjpeg62-dev libjpeg62 zlib1g-dev zlib1g libfreetype6 libfreetype6-dev liblcms1 liblcms1-dev
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
tar xvzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7/

nano setup.py
...
JPEG_ROOT = '/usr/lib/x86_64-linux-gnu'

script -t 2>~/pil.time ~/pil.script
/opt/python24/bin/python setup.py clean
rm -f *.so PIL/*.so
/opt/python24/bin/python setup.py build_ext -i
/opt/python24/bin/python selftest.py
/opt/python24/bin/python setup.py install

Информация о установленном PIL
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux3 2.4.4 (#10, Nov 25 2014, 19:16:43)
              [GCC 4.7.2]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
--- LITTLECMS support available

Установка конвертеров
Установлены ранее
iconv, libfreetype6, libfreetype6-dev

aptitude install libpng12-0 libpng12-0-dev
aptitude install libwmf-bin libwmf-dev
aptitude install wv libwv-dev
aptitude install xlhtml
aptitude install unrtf
aptitude install xpdf xpdf-utils
aptitude install graphviz graphviz-dev libgraphviz-dev python-pygraphviz

После того, как все установлено и завертелось
имеет смысл сделать резервную копию с «чистой» системы.

Установленные пакеты
dpkg --get-selections > ~/installed-software.log
Для восстановления достаточно набрать
aptitude install $(cat ~/installed-software.log | awk '{print $1}')

Запаковать Naudoc/Zope
tar -zcvf ~/zope-backup.tgz /opt/zope
tar -zcvf ~/naudoc-backup.tgz /opt/naudoc

И финальный штрих, демонизация, или
Автозапуск Zope/NauDoc

Скрипт автозапуска
nano /etc/init.d/zope2.10
#!/bin/sh

### BEGIN INIT INFO
# Provides:          zope2.10
# Required-Start:    $syslog $remote_fs $network
# Required-Stop:     $syslog $remote_fs $network
# Should-Start:      $remote_fs
# Should-Stop:       $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start zope2.10 instances
# Description:       Start the instance /opt/naudoc/bin/zopectl
### END INIT INFO

ZVER=2.10
INSTANCES='naudoc'

[ -d /opt/naudoc -a -d /opt/zope ] || exit 0

. /lib/lsb/init-functions

if [ -f "/etc/default/zope$ZVER" ]; then
        . /etc/default/zope$ZVER
fi

if [ "$INSTANCES" = "NONE" -o "$INSTANCES" = "" ]; then
    INSTANCES=''
    log_warning_msg "Zope$ZVER: instances have been disabled, edit /etc/default/zope$ZVER to enable them."
elif [ "$INSTANCES" = "ALL" ]; then
    INSTANCES='*'
fi

case "$1" in
    start|stop|restart)
        p=''; [ "$1" = "stop" ] && p='p'

        if [ -n "$INSTANCES" ]; then
            cd /opt
            for i in $INSTANCES ; do
                    if [ "$i" = "*" ]; then
                        log_success_msg "Zope$ZVER: no instances found."
                        break
                    elif [ ! -d "$i" ]; then
                        continue
                    fi

                    if [ -x /opt/$i/bin/zopectl ] ; then
                        log_begin_msg "Zope$ZVER: ${1}${p}ing $i instance"
                        /opt/$i/bin/zopectl $1 >/dev/null 2>&1
                        log_end_msg $?
                    else
                        log_warning_msg "Zope$ZVER: skipping $i (old/purged)"
                    fi
            done
        fi
        ;;

    force-reload)
        echo "Zope$ZVER doesn't support force-reload, use restart instead."
        ;;

    *)
        echo "Usage: /etc/init.d/zope$ZVER {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0

Регистрация демона
chmod +x /etc/init.d/zope2.10
chkconfig --add zope2.10

Теперь Naudoc/Zope будет стартовать при запуске хоста, доступ к СЭД открыт на порту TCP 8080.

Ну и хватит на сегодня.

Чуть позже я покажу как установить к Naudoc/Zope frontend Apache httpd, сделать правильный самоподписанный SSL/TLS сертификат, настроить почтовый шлюз через Яндекс.Почта для домена и прочие ништяки.





original post http://vasnake.blogspot.com/2015/02/zope-2107-naudoc-6-debian-7-amd64.html

2 комментария:

  1. Добрый день, может поделитесь NauDoc-6, прошерстил весь интернет, нет нигде версии NauDoc-6. Заранее спасибо.

    ОтветитьУдалить
    Ответы
    1. Поделюсь, почему нет: https://yadi.sk/d/KxTbxcjA7rop0Q?w=1

      Еще и совет дам бесплатный: не тратьте время на это говно мамонта, если вам за это не платят.
      Да и если платят, тоже не надо.

      Удалить

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)