Установка сервера 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'.
Пакет сервера перемещает файлы, необходимые для начальной загрузки/обновления баз данных, в /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
После начальной загрузки...
- Были ли проблемы при попытке начальной загрузки или с пользователями для подключения к базе данных? Вот признаки того, что нужно перепроверить правильность конфигурации postgres в соответствии с ConfigurePostgreSQL:
- вы надеялись сделать начальную загрузку как любой пользователь системы, кроме
root
или postgres
, и не можете
- клиентское ПО GNUmed не может подключиться к серверу GNUmed, установленному на вашем локальном компьютере (после начальной загрузки)
- клиенты не могут подключиться ни с какого компьютера, за исключением собственного
- Далее, перезагрузите сервер 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
.