You are here: Foswiki>Gnumed Web>GmManualServerInstallRu (17 Mar 2013, IvanLykov)EditAttach

Установка сервера GNUmed

В то время, как публичный сервер позволяет основной доступ (хотя медленно) к GNUmed для "первого ощущения", следующие шаги предназначены для обеспечения установки локальной базы данных, т.е. на компьютере, на котором вы работаете. Хотя локальная база данных быстрее и надёжнее, чем публичный сервер, она требует некоторых усилий для установки.

Прежде, чем пытаться установить базу данных GNUmed, нужно будет:

1) ConfigurePostgreSQL

2) Скачать пакет сервера или архив сервера с официального ftp. Во избежание некоторых неуправляемых противоречий предполагается, что файлы должны находиться в /tmp (Себастьян, 1 июля 2010 года)

Теперь ваша система готова, перейдем к интересным вещам.

Установить новую базу данных GNUmed?

Применяйте указанные здесь методы, если еще никогда не устанавливали базу данных GNUmed на своем компьютере, или если полностью уверены, что любые существующие данные GNUmed только экспериментальные и могут быть бесповоротно удалены. Если нужно сделать обновление базы данных GNUmed без потери данных, сначала скопируйте данные с помощью Резервного копирования данных и процедур восстановления, и переходите к GmManualServerUpgrade.

Станьте root или postgres

Установка базы данных GNUmed обычно выполняется пользователем root или пользователем, который мог бы стать (с использованием su) postgres. Успех скрипта под любым_другим_пользователем возможен, только по-другому, когда любому_другому_пользователю явно предоставлены права доступа. Единственным исключением является вариант "сетевой установки", запущенной обычным пользователем… см. ниже.

О скрипте загрузчика

Какой бы метод для получения ПО сервера не использовался, необходимо будет запустить сценарий загрузчика.

При его запуске, он будет
  • запрашивать пароль для базы данных владельца gm-dbo (если только файлы .conf уже не содержат пароль, даже при пустом)
    • если этот пароль утерян, его можно переустановить через
      • пользователя postgres, запускающего команду psql
        ALTER ROLE "gm-dbo" ENCRYPTED PASSWORD 'a secret string';
      • запуская под root сценарий сервера (июль 2010):
        server/gm-set_gm-dbo_password
  • этот начальный загрузчик затем будет
    • начально загружать (устанавливать) основную базу данных v2
    • применять последовательные обновления для получения базы данных до последней версии
    • примечание: этот подход был принят для обеспечения надежного пути обновления к последней базе данных.

Предупреждения:
  • использование предподготовленных пакетов (на Дебиан "testing" или новее) установит последний официально выпущенный сервер, узнаваемый по его "версии" базы данных
  • серверы (базы данных), которые можно загрузить из CVS, архивов снимков или сервера "кандидатов релиза", предназначены только для тестирования и использоваться в работе не должны, так как схема базы данных еще может измениться. Кроме того, в то время, как установка из дерева CVS приведет к последней версии-разработки, остерегайтесь иногда имеющихся в CVS баггов и/или неготовности к запуску.

Начальный загрузчик зависит от уже установленной минимальной версии Postgres 8.1. Для максимального удовольствия (особенно, при поиске пациентов с диакритическими знаками или умлаутами в их имени) мы рекомендуем запуск на PostgreSQL 8.3, включенный в Дебиан "Lenny" и многие другие свежие Линукс'ы, и также доступный для Mac OS, Windows, Unix. По вопросу о Postgres 8.4 смотрите нашу страницу вики PostgreSQL.

Начальный загрузчик подразумевает, что намеченный компьютер, на котором он будет запускаться:
  • уже имеет ConfigurePostgreSQL
  • запущен сам сервер PostgreSQL
  • любая существующая база данных GNUmed не для эксплуатации (так как повторение сценария уничтожит данные)
  • все существующие клиенты GNUmed регистрируются с любого GNUmed намеченного компьютера

Подробнее о загрузчике в приложении (см. Подробности о загрузчике).

Уничтожение всех существующих баз данных GNUmed и их данных

Вы понимаете это? Точно? Процесс установки будет стирать (уничтожать) существующие базы данных GNUmed, вплоть до и включая версию, указанную в загрузчике.

Дебиан (Stable | Testing | Unstable): пакеты deb

По умолчанию, ОС в разработке GNUmed является Дебиан testing, так что stable и unstable должны поддерживаться, при условии установленного с правильной настройкой и работой PostgreSQL.

Обычно, под root или sudo для анализирования gnumed будет достаточно
apt-get -t testing install gnumed-server
или, если уже используется дистрибутив Дебиан 'testing', инструмент GUI, подобный 'менеджеру пакетов Synaptic'.

Пакет сервера перемещает файлы, необходимые для начальной загрузки/обновления баз данных, в /var/lib/gnumed/server/ и также устанавливает некоторые команды и man-страницы:

  • запустите (под root или sudo) системную команду gm-bootstrap_server
  • при желании, уточните
    • man -k gnumed
    • man gm-bootstrap_server
    • man gm-upgrade_server
    • /usr/share/doc/gnumed-server/README.Debian

Ubuntu (hardy|intrepid|jaunty|karmic): пакеты deb

Пакеты Ubuntu для серверной части GNUmed доступны через персональный пакет команды GNUmed. Для получения пакета 'gnumed-server' необходимо добавить репозиторий ПО "GNUmed PPA" в список исходников. Это достижимо через инструменты, подобные 'Менеджеру пакетов Synaptic'.

  • Строка для ручного добавления отсылает в GNUmed team's PPA

Пакет сервера перемещает файлы, необходимые для начальной загрузки/обновления баз данных, в /var/lib/gnumed/server/ и также устанавливает некоторые команды и man-страницы:

  • запустите (под root или sudo) общесистемную команду gm-bootstrap_server
  • при желании, уточните
    • man -k gnumed
    • man gm-bootstrap_server
    • man gm-upgrade_server
    • /usr/share/doc/gnumed-server/README.Debian

Debian, (*)buntu, Mandriva: сетевая установка

  • скачайте скрипт сетевой установки, загружающий последнюю версию сервера и заботящийся об установке любых пакетов, нужных серверу, по ситуации.
  • убедитесь, что файл является исполняемым
  • как обычный пользователь запустите ./ файл net_install-gnumed_server.sh
    • в некоторых местах в скрипте нужно предоставлять пароль root
    • может понадобится проверить файл на ошибки до его запуска

Mandriva

openSuSE: пакеты rpm

Для установки на сервере GNUmed доступны препакетированные пакеты RPM.

Либо используйте установщик в 1-клик со страницы загрузки,

либо используйте инструмент GUI, подобный 'Менеджеру пакетов Yast', либо, под root или с sudo запустите zypper install gnumed-server

Пакет сервера перемещает файлы, необходимые для начальной загрузки/обновления баз данных в /usr/lib/gnumed/server/, и также устанавливает некоторые man-страницы и команды:

  • запустите (под root или sudo) общесистемную команду gm-bootstrap_server
  • при желании, уточните
    • man -k gnumed
    • man gm-bootstrap_server
    • man gm-upgrade_server
    • /usr/share/doc/gnumed-server/README.Debian

PCLinuxOS

  • препакетированные RPM'ы сервера доступны благодаря Паулю Гринберг

общий Linux и MacOSX: локальная установка

  • установите директорию
    • mkdir gnumed-server
    • cd gnumed-server

  • если нужно установить официальную версию
  • теперь у вас есть версированный подкаталог, например GNUmed-v9
      • cd GNUmed-v9/server/bootstrap/

  • если нужен авангард

  • если сервер PostgreSQL прослушивает порт, отличный от 5432:
    • задайте переменную среды GM_DB_PORT

  • перейдите в server/bootstrap/
  • запустите (как root или с sudo) bootstrap-latest.sh
    • ПРИМЕЧАНИЕ: Mac OS и Ubuntu не поддерживают команду su -c..., без которой, единственное, невозможны процедуры проверки и очистки или, другими словами, некритично

Необходимо самому позаботиться об установке любых требуемых пакетов. Полный список пакетов можно найти здесь, пользователи Mac, желающие просто получить копию Postgres и сервера GNUmed, запущенных локально на их компьютере, могут посмотреть этот пост в списке gnumed-devel.

Windows

После начальной загрузки...

  1. Были ли проблемы при попытке начальной загрузки или с пользователями для подключения к базе данных? Вот признаки того, что нужно перепроверить правильность конфигурации postgres в соответствии с ConfigurePostgreSQL:
    • вы надеялись сделать начальную загрузку как любой пользователь системы, кроме root или postgres, и не можете
    • клиентское ПО GNUmed не может подключиться к серверу GNUmed, установленному на вашем локальном компьютере (после начальной загрузки)
    • клиенты не могут подключиться ни с какого компьютера, за исключением собственного
  2. Далее, перезагрузите сервер PostgreSQL, чтобы изменения вступили в силу. На Linux/Unix, включая MacOS X методами по порядку важности являются:
    • /etc/init.d/postgresql-8.3 restart
    • pg_ctlcluster 8.3 main restart
    • или перезагрузите компьютер (думаю, "Windows")

Отсюда можно перейти к Запуску GNUmed, для чего может потребоваться изменить файл gnumed.conf клиента GNUmed, чтобы дать найти ваш вновь созданный бэкэнд. Самый простой способ это сделать - под root - скопировать файл /etc/gnumed/gnumed-client.conf (или для версий клиентов ниже 0.4x, файл /etc/gnumed/gnumed.conf) в /home/userid/.gnumed/. Затем войдите в систему как пользователь и запустите GNUmed.

По умолчанию, загрузчик вставляет заголовок входа в одну из таблиц, предупреждающий пользователей, что база данных, к которой они подключаются не является эксплуатационной. Он хранится одной строкой в таблице cfg.db_logon_banner (в этой таблице в любой момент времени может быть только одна строка). Можно просмотреть скриншот, вложенный в это сообщение архива. Для деактивации удалите строку из таблицы или, в качестве альтернативы, замените ее на свой собственный баннер входа. Последнее особенно рекомендуется для тех, кто хотел бы на удаленном сервере не оставлять вопрос о том, к какому серверу базы данных подключен клиент (клиника, госпиталь, на дому и проч.).

Убедитесь, что удалили тестовые учетные записи (any-doc и т.д.) и, возможно, создали собственный файл(ы) конфигурации клиента, когда переходите к работе.

Устранение сбоев и отдельные заметки

  • если видите сообщение ERROR_STACK_DEPTH exceeded при начальной загрузке
    • установите lc_messages на 'C' в postgresql.conf
    • в последних версиях он устанавливается загрузчиком автоматически
  • подробнее в Устранение проблем PostgreSQL

Подробности о загрузчике

Этот раздел объясняет, как концептуально работает загрузчик, следовательно, вы сможете получить, как запустить его на вашей ОС.

Этот процесс идет примерно так:

  • создает основную базу данных v2
  • импортирует все необходимые таблицы
  • импортирует все необходимые файлы языковых переводов, необходимые для поддержки
  • предоставляет соответствующие права доступа
  • обновляет итерационно основную базу данных v2 для получения последней версии

На GNU/Linux после того, как установите Postgres и учетные записи базы данных (например, gm-dbo) будут настроены, а программные файлы GNUmed будут установлены из CVS или из снимка архива, все шаги по установке базы данных могут быть обработаны автоматически через сценарий Python bootstrap_gm_db_system.py, находящийся в gnumed/server/bootstrap/. В этом же каталоге предоставляется несколько конфигурационных файлов для начальной загрузки.

Этот процесс дополнительно упрощен, как описано выше, с использованием предоставленных скриптов. Они сами вызовут скрипт начальной загрузки и обеспечат необходимые опции командной строки путем подобных вызовов:

    ./bootstrap_gm_db_system.py --conf-file=<a config file>

Если нужно вручную настроить их, читайте конфигурационные файлы и исходник скриптов начальной загрузки. Все параметры файла конфигурации описаны в bootstrap-standard.conf.template.
Topic revision: 17 Mar 2013, IvanLykov
 
Download.png
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
Powered by Olark