GIS-LAB

Географические информационные системы и дистанционное зондирование

Сборка PostgreSQL + PostGIS + WKT Raster для Windows

Краткое описание действий по установке "с нуля".

Руководство содержит пошаговые инструкции по сборке связки PostgreSQL + PostGIS + WKT Raster в системе Windows XP "с нуля".

При описании действий предполагается, что MinGW и MSYS установлены в каталоги, предлагаемые по умолчанию (C:\MinGW и C:\MSYS\1.0 соответственно), а исходные тексты располагаются на диске D:\ в подкаталогах папки src (например, D:\src\libtool-2.2).

Оглавление

  1. Установка MinGW
  2. Установка MSYS
  3. Дополнительные пакеты GnuWin32
  4. Макропроцессор m4
  5. Переменные окружения
  6. Пакет autotools
  7. Собираем PostgeSQL
  8. Собираем GEOS
  9. Собираем Proj
  10. Собираем PostGIS
  11. Собираем WKT Raster
  12. Настройка и использование

1. Установка MinGW

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 Мб.

  1. запустите установку
  2. выберите пункт "Download and Install"
  3. когда дойдете до выбора компонент - выбирайте все, кроме Ады. Хотя Аду тоже можно установить, вреда не будет

Устанавливать лучше в каталог предлагаемый по умолчанию (C:\MinGW). В дальнейшем будем предполагать, что MinGW установлен именно так.

2. Установка MSYS

MSYS (Minimal SYStem). Предоставляет пользователю POSIX-совместимую среду и набор консольных утилит, использующихся при сборке UNIX-программ. Изначально MSYS была разработана чтобы сделать возможным выполнение скриптов конфигурации и сборки (Makefiles), используемых при компиляции ПО с открытым кодом. Позже многие стали использовать ее как альтернативу интерфейсу командной строки Windows cmd.exe.

2.1 MSYS

Загрузить Msys Installer можно здесь.

  1. запускаем установку и следуем указаниям мастера
  2. каталог назначения (C:\msys\1.0) оставляем без изменений
  3. после установки появится окно с предложением провести послеустановочную настройку - соглашаемся
  4. на вопрос о наличии MinGW отвечаем положительно
  5. указываем каталог MinGW (если вы не меняли предлагаемые по умолчанию пути, пишите c:/mingw)

2.2 MSYS DTK

Далее скачиваем и устанавливаем стабильную сборку MSYS Development Toolkit. Установка не должна вызвать вопросов, просто следуем указаниям мастера.

2.3 MSYS Core

Кроме того, нужно скачать пакет MSYS Core 1.0.11. Архив распаковываем в c:\msys\1.0 с заменой файлов.

3. Дополнительные пакеты GnuWin32

Полный перечень пакетов можно посмотреть на странице gnuwin32.sourceforge.net/packages.html. Нам же для успешной компиляции необходимо скачать и установить только

  • Bison - парсер-генератор общего назначения, конвертирующий аннотированное контекстно-независимое описание в LALR- или GLR-парсер этого описания. Bison может использоваться для широкого круга языковых парсеров, начиная с простых для настольных калькуляторов и заканчивая языками программирования
  • zlib - свободно распространяемая, zip-совместимая библиотека компрессии общего назначения
  • Flex - быстрый лексический анализатор-генератор. Flex является инструментом для разработки программ осуществляющих поиск по шаблонам текста. Существует множество применений Flex, включая написание компиляторов совместно с Bison
  • GetText - набор инструментов для облегчения интернационализации приложений
  • libiconv - библиотека обеспечивающая конвертацию текстов в различные кодировки.

При установке этих пакетов в качестве каталога назначения указываем C:\MinGW.

Замечание: авторы англоязычной инструкции по компиляции PostGIS рекомендуют не ставить бинарный пакет, а собирать libiconv из исходников. Однако никаких проблем при использовании бинарного пакета я не заметил. Если есть желание - можете скачать исходники этой библиотеки (я брал версию 1.13.1), распаковать во временную папку (например, D:\src\libiconv-1.13.1) и собрать ее самостоятельно. Для этого

  1. открываем консоль MSYS используя ярлык на рабочем столе или пункт в меню "Пуск"
  2. последовательно вводим команды, завершая каждую из них нажатием клавиши Enter
  3. cd /d/src/libiconv-1.13.1
  4. ./configure --prefix=/c/mingw && make && make install

4. Макропроцессор m4

Как показала практика, макропроцессор из состава MSYS довольно старый. Для успешной сборки его необходимо обновить. Поэтому скачиваем m4-1.4.7-MSYS.tar.bz2, распаковываем архив в папку исходников и копируем файл m4.exe в C:\msys\1.0\bin.

5. Переменные окружения

Чтобы командный интерпретатор знал где искать инструменты из состава MinGW и/или GnuWin32, необходимо обновить переменные окружения. Процедура эта не обязательная и направлена исключительно на повышение удобства работы.

  1. кликните правой кнопкой мыши по значку "Мой компьютер" и выберите "Свойства"
  2. откройте вкладку "Дополнительно", нажмите кнопку "Переменные среды"
  3. в списке "Системные переменные" найдите строку PATH и двойным щелчком на ней начните редактирование
  4. появится диалоговое окошко с двумя поля ввода, в нижнем поле содержится значение переменной. Будьте осторожны, не удаляйте существующие записи. Перейдите в конец строки и добавьте ;C:\MinGW\bin. Не забудьте начальную точку с запятой - она там не для красоты стоит. После окончания редактирования нажмите Ok
  5. создайте переменную HOME. Для этого нажмите на кнопку "Создать", в верхнее поле введите HOME, а в нижнее - C:\msys\1.0\home
  6. закройте все окна последовательно нажимая Ok

6. Пакет autotools

Широко используется разработчиками и включает в себя autoconf, automake и libtool. Выкачиваем исходники с сервера gnu.org

Архивы распаковываем в каталог исходных текстов, каждый в отдельную папку. Запускаем консоль MSYS, если она еще не запущена, и по очереди собираем

  1. cd /d/src/autoconf-2.63
  2. configure --prefix=/c/mingw && make && make install
  3. cd /d/src/automake-1.9
  4. configure --prefix=/c/mingw && make && make install
  5. cd /d/src/libtool-2.2
  6. configure --prefix=/c/mingw && make && make install

7. Собираем PostgeSQL

Скачиваем исходные тексты последней стабильной версии 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.

8. Собираем GEOS

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

9. Собираем Proj

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

Последнюю версию proj можно взять здесь. Получив архив, выполняем уже знакомую последовательность действий: извлекаем файлы из архива, переходим в каталог с иходниками и компилируем

cd /d/src/proj-4.6.1
configure --prefix=/c/postgres && make && make install

10. Собираем PostGIS

Компилировать будем версию из 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
		

11. Собираем WKT Raster

Скачиваем архив с последней 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
		

12. Настройка и использование

Самое сложное позади, осталось скопировать все dll файлы из папки c:\postgres\lib в c:\postgres\bin, добавить c:\postgres\bin в переменную PATH и можно приступать к настройке сервера.

Прежде всего необходимо создать пользователя, от имени которого будет стартовать сервер PostgreSQL. Правой кнопкой мыши щелкаем по значку "Мой компьютер", выбираем "Управление", открываем раздел "Служебные программы-Локальные пользователи и группы-Пользователи". Создаем пользователя postgres и задаем ему пароль.

Открываем командную строку Windows "Пуск-Выполнить" в окне вводим текст

runas /user:postgres cmd.exe
и дальнейшие действия выполняем в открывшемся окне консоли.

  1. инициализируем каталог баз данных (кодировку и путь указывайте по своему усмотрению)
    initdb -E win1251 -D:\pg_data
  2. запускаем сервер
    postmaster -D:\pg_data
    После старта он откроется в отдельном окне
  3. создаем базу данных postgis
    createdb -U postgres postgis
  4. включаем поддержку процедурного языка PL/pgSQL
    createlang plpgsql -U postgres -D:\pg_data
  5. загружаем функции и объекты, необходимые для работы с пространственными данными
    psql -а c:\postgres\share\contrib\postgis.sql -U postgres -d postgis
  6. загружаем описания систем координат
    psql -а c:\postgres\share\contrib\spatial_ref_sys.sql -U postgres -d postgis
  7. загружаем функции и объекты, необходимые для работы растровыми данными
    psql -а c:\postgres\share\contrib\rtpostgis.sql -U postgres -d postgis

Остановить сервер можно выполнив от имени пользователя postgres

pg_ctl.exe stop -D D:\pg_data

При желании можно настроить запуск сервера в качестве службы. Для этого

  1. останавливаем сервер, если он запущен
    pg_ctl.exe stop -D D:\pg_data
  2. регистрируем службу
    pg_ctl.exe register -N "PostgreSQL_8.3.7" -U postgres -D:\pg_data
  3. правой кнопкой мыши щелкаем по значку "Мой компьютер", выбираем "Управление", открываем раздел "Службы и приложения-Службы", двойным кликом по названию только что созданной службы открываем ее свойства, закладка "Вход в систему"
  4. задаем имя пользователя ".\postgres" (без кавычек)
  5. в окне ввода пароля указываем правильный пароль, жмем применить
  6. получаем сообщение, что пользователю postgres разрешен вход в качестве службы, закрываем окно свойств и стартуем службу

Созданная в процессе сборки среда MSYS/MinGW может использоваться и в дальнейшем, например, при обновлении или для сборки другого ПО. Если же вы не планируете еще что-либо собирать или обновляться по мере выхода новых версий - можно смело удалить каталоги d:\src, c:\MinGW и c:\MSYS, для функционирования собранных нами компонент они уже не нужны.

Обсудить в форуме Комментариев — 3

Последнее обновление: August 10 2009

Вход

Рассылка новостей

Новое на форумеRSS

Обратная связь

captcha


(Геокруг)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter