Обсудить в форуме Комментариев 3Редактировать в вики
Краткое описание действий по установке «с нуля».
Руководство содержит пошаговые инструкции по сборке связки PostgreSQL + PostGIS + WKT Raster в системе Windows XP «с нуля».
При описании действий предполагается, что MinGW и MSYS установлены в каталоги, предлагаемые по умолчанию (C:\MinGW и C:\MSYS\1.0 соответственно), а исходные тексты располагаются на диске D:\ в подкаталогах папки src (например, D:\src\libtool-2.2).
MinGW (Minimalist GNU for Windows, бывший mingw32) — порт компилятора GNU Compiler Collection (GCC) для Microsoft Windows включающий набор свободных библиотек и заголовочных файлов для Windows API. MinGW позволят разработчикам создавать приложения Microsoft Windows. В MinGW включены расширения для Microsoft Visual C++ runtime library поддерживающие C99 (современный диалект C).
Скачайте MinGW Installer (текущая версия 5.1.4). Не удивляетесь малому размеру полученного файла — это онлайн-установщик, размер полной установки составит около 170 Мб.
Устанавливать лучше в каталог предлагаемый по умолчанию (C:\MinGW). В дальнейшем будем предполагать, что MinGW установлен именно так.
MSYS (Minimal SYStem). Предоставляет пользователю POSIX-совместимую среду и набор консольных утилит, использующихся при сборке UNIX-программ. Изначально MSYS была разработана чтобы сделать возможным выполнение скриптов конфигурации и сборки (Makefiles), используемых при компиляции ПО с открытым кодом. Позже многие стали использовать ее как альтернативу интерфейсу командной строки Windows cmd.exe.
Загрузить Msys Installer можно здесь.
Далее скачиваем и устанавливаем стабильную сборку MSYS Development Toolkit. Установка не должна вызвать вопросов, просто следуем указаниям мастера.
Кроме того, нужно скачать пакет MSYS Core 1.0.11. Архив распаковываем в C:\msys\1.0 с заменой файлов.
Полный перечень пакетов можно посмотреть на странице gnuwin32.sourceforge.net/packages.html. Нам же для успешной компиляции необходимо скачать и установить только:
При установке этих пакетов в качестве каталога назначения указываем C:\MinGW.
Замечание: авторы англоязычной инструкции по компиляции PostGIS рекомендуют не ставить бинарный пакет, а собирать libiconv из исходников. Однако никаких проблем при использовании бинарного пакета я не заметил. Если есть желание — можете скачать исходники этой библиотеки (я брал версию 1.13.1), распаковать во временную папку (например, D:\src\libiconv-1.13.1) и собрать ее самостоятельно. Для этого:
cd /d/src/libiconv-1.13.1 ./configure --prefix=/c/mingw && make && make install
Как показала практика, макропроцессор из состава MSYS довольно старый. Для успешной сборки его необходимо обновить. Поэтому скачиваем m4-1.4.7-MSYS.tar.bz2, распаковываем архив в папку исходников и копируем файл m4.exe в C:\msys\1.0\bin.
Чтобы командный интерпретатор знал где искать инструменты из состава MinGW и/или GnuWin32, необходимо обновить переменные окружения. Процедура эта не обязательная и направлена исключительно на повышение удобства работы.
Широко используется разработчиками и включает в себя autoconf, automake и libtool. Выкачиваем исходники с сервера gnu.org
Архивы распаковываем в каталог исходных текстов, каждый в отдельную папку. Запускаем консоль MSYS, если она еще не запущена, и по очереди собираем
cd /d/src/autoconf-2.63
configure --prefix=/c/mingw && make && make install
cd /d/src/automake-1.9
configure --prefix=/c/mingw && make && make install
cd /d/src/libtool-2.2
configure --prefix=/c/mingw && make && make install
Скачиваем исходные тексты последней стабильной версии PostgreSQL с http://www.postgresql.org/ftp/source/. Распаковав архив в D:\src\postrgesql, обнаружим в нем три папки: backend, postgresql-8.3.7 и src. Для успешной компиляции необходимо из папки D:\src\postgresql\backend\utils\mb\conversion_procs\euc_jis_2004_and_shift_jis_2004\ перенести единственный лежащий там файл в D:\src\postgresql\postgresql-8.3.7\src\backend\utils\mb\conversion_procs\euc_jis_2004_and_shift_jis_2004\. Таким же образом поступаем и с папкой src: переносим файлы из D:\src\postgresql\src\backend\utils\mb\conversion_procs\utf8_and_shift_jis_2004\ в D:\src\postgresql\postgresql-8.3.7\src\backend\utils\mb\conversion_procs\utf8_and_shift_jis_2004\. Теперь можно компилировать. Запускаем MSYS и выполняем
cd /d/src/postgresql/postgresql-8.3.7 ./configure --prefix=/c/postgres && make && make install
По окончанию процесса PostgreSQL будет находиться в C:\postgres.
GEOS (Geometry Engine — Open Source) — порт на язык C++ пакета топологии Java — Java Topology Suite (JTS). GEOS предоставляет доступ к функциональности JTS с помощью C++. Это включает пространственные функции операторы определенные спецификацией OpenGIS Simple Features для SQL, а также специфические функции работы с топологией JTS.
Скачиваем последнюю версию GEOS с сервера trac.osgeo.org/geos/, и разворачиваем архив в каталог исходных текстов. В консоли MSYS переходим в созданный каталог и выполняем
cd /d/src/geos-3.1.0 configure --prefix=/c/postgres && make && make install
При желании можно удалить отладочную информацию из скомпилированной библиотеки командой
strip /c/postgres/bin/libgeos-3-1-1.dll
Proj — свободная библиотека и набор инструментов, являющихся де-факто стандартом в области трансформации координат и проекционных преобразований
Последнюю версию proj можно взять здесь. Получив архив, выполняем уже знакомую последовательность действий: извлекаем файлы из архива, переходим в каталог с иходниками и компилируем
cd /d/src/proj-4.6.1 configure --prefix=/c/postgres && make && make install
Компилировать будем версию из svn, графическую оболочку для shp2pgsql собирать не будем. Загружаем архив PostGIS-1.4.0SVN.tar.gz, распаковываем его содержимое в каталог исходных текстов, открываем консоль MSYS и выполняем
cd /d/src/postgis-1.4.0SVN configure --prefix=/c/postgres --with-pgconfig=/c/postgres/bin/pg_config --with-geosconfig=/c/postgres/bin/geos-config --with-projdir=/c/postgres make && make install
Скачиваем архив с последней svn версией, распаковываем в D:\src\wktraster-0.1.6SVN, открываем окно MSYS и выполняем
cd /d/src/wktraster-0.1.6SVN ./configure --with-postgis-sources=/d/src/postgis-1.4.0SVN --with-pgconfig=/c/postgres/bin/pg_config --with-geosconfig=/c/postgres/bin/geos-config make && make install
Самое сложное позади, осталось скопировать все dll файлы из папки C:\postgres\lib в C:\postgres\bin, добавить C:\postgres\bin в переменную PATH и можно приступать к настройке сервера.
Прежде всего необходимо создать пользователя, от имени которого будет стартовать сервер PostgreSQL. Правой кнопкой мыши щелкаем по значку «Мой компьютер», выбираем «Управление», открываем раздел «Служебные программы → Локальные пользователи и группы → Пользователи". Создаем пользователя postgres и задаем ему пароль.
Открываем командную строку Windows «Пуск → Выполнить» в окне вводим текст
runas /user:postgres cmd.exe
и дальнейшие действия выполняем в открывшемся окне консоли.
initdb -E win1251 -D:\pg_data
postmaster -D:\pg_dataПосле старта он откроется в отдельном окне
createdb -U postgres postgis
createlang plpgsql -U postgres -D:\pg_data
psql -а c:\postgres\share\contrib\postgis.sql -U postgres -d postgis
psql -а c:\postgres\share\contrib\spatial_ref_sys.sql -U postgres -d postgis
psql -а c:\postgres\share\contrib\rtpostgis.sql -U postgres -d postgis
Остановить сервер можно выполнив от имени пользователя postgres
pg_ctl.exe stop -D D:\pg_data
При желании можно настроить запуск сервера в качестве службы. Для этого:
pg_ctl.exe stop -D D:\pg_data
pg_ctl.exe register -N "PostgreSQL_8.3.7" -U postgres -D:\pg_data
Созданная в процессе сборки среда MSYS/MinGW может использоваться и в дальнейшем, например, при обновлении или для сборки другого ПО. Если же вы не планируете еще что-либо собирать или обновляться по мере выхода новых версий — можно смело удалить каталоги d:\src, c:\MinGW и c:\MSYS, для функционирования собранных нами компонент они уже не нужны.
Обсудить в форуме Комментариев 3Редактировать в вики
Последнее обновление: 2014-05-14 22:13
Дата создания: 10.08.2009
Автор(ы): Александр Бруй
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).