Как устанавливать GRASS Add-ons в Linux

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 31 окт 2010, 14:43

Инструкция по установке дополнения GRASS HydroFOSS для дистрибутива OSGeo-Live 4.0.1 (Xubuntu 10.04)
  • Обновляем пакетные базы

    Код: Выделить всё

    $ sudo aptitude update
  • Устанавливаем дополнительные пакеты, необходимые для компиляции GRASS из исходников

    Код: Выделить всё

    $ sudo aptitude install build-essential flex byacc bison ncurses-dev libreadline6-dev libjpeg62-dev libgdal1-dev libtiff4-dev libgl1-mesa-dev libglu1-mesa-dev tcl8.5-dev tk8.5-dev fftw-dev libcairo2-dev python-dev swig wx2.8-headers wx-common libwxgtk2.8-dev libwxbase2.8-dev libxmuu-dev libxmu-dev
  • Загружаем архив с исходным кодом GRASS (версия 6.4.0):

    Код: Выделить всё

    $ wget http://grass.osgeo.org/grass64/source/grass-6.4.0.tar.gz
  • Разархивируем и зайдём в каталог с исходниками:

    Код: Выделить всё

    $ tar zvxf grass-6.4.0.tar.gz 
    $ cd grass-6.4.0
    
  • Конфигурируем (аккуратно скопируйте всё в командную строку, не допускайте обрывов строк)
    Подставьте в "--prefix=" каталог, в который хотите установить GRASS (например, в вашу домашнюю директорию -->/home/имя_пользователя/grass-6.4.0)

    Код: Выделить всё

    $ CFLAGS="-g -Wall" ./configure --prefix=/home/user/bin/grass-6.4.0RC6/grass-6.4.0 --enable-largefile --enable-shared  --with-x --x-includes=/usr/include/X11/ --x-libraries=/usr/lib/X11/ --with-gdal=/usr/bin/gdal-config --with-readline --with-cairo --with-sqlite --with-postgres --with-postgres-includes=/usr/include/postgresql --with-freetype --with-freetype-includes=/usr/include/freetype2 --with-cxx --with-tcltk --with-tcltk-includes=/usr/include/tcl8.5/ --with-python=/usr/bin/python2.6-config --with-wxwidgets=/usr/lib/wx/config/base-unicode-release-2.8 --with-proj-share=/usr/share/proj -with-odbc --with-blas --with-blas-includes=/usr/lib/grass64/include/grass/ --with-blas-libs=/usr/lib/ --with-lapack --with-lapack-includes=/usr/lib/grass64/include/grass/ --with-lapack-libs=/usr/lib/ --with-fftw --with-fftw-includes=/usr/include/
  • Компилируем GRASS (занимает разное время в зависимости от конфигурации компьютера)
  • Устанавливаем GRASS

    Код: Выделить всё

    $ make install
    или

    Код: Выделить всё

    $ sudo make install
    (если в качестве каталога для установки был выбран каталог НЕ в вашей домашней директории, а, например, в /usr/local/bin/grass)
  • Желательно добавить следующую строку в конец файла ~/.bashrc (с помощью любого текстового редактора):

    Код: Выделить всё

    $ alias grass-6.4.0='~/bin/grass-6.4.0RC6/grass-6.4.0/bin/grass64' 
  • Нужно также дописать в ~/.bashrc в конец строки PATH="..." путь к недавно установленной GRASS (у меня это ~/bin/grass-6.4.0RC6/grass-6.4.0/bin/)
    У меня это выглядит так:
    PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/local/ossim:/usr/local/ossim/bin:~/bin/grass-6.4.0RC6/grass-6.4.0/bin/"
  • Создаем каталог для установки дополнений (в нашем случае HydroFOSS) и заходим в него:

    Код: Выделить всё

    $ mkdir ~/grass_addons 
    $ cd ~/grass_addons
  • Получаем исходный код дополнения HydroFOSS (должна быть установлена система управления версиями SVN, в OSGeo-Live 4.0.1 она уже установлена):

    Код: Выделить всё

    $ svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/
    или

    Код: Выделить всё

    $ svn co http://svn.osgeo.org/grass/grass-addons/HydroFOSS/
  • Компилируем HydroFOSS (перед этим заходим в каталог HydroFOSS)

    Код: Выделить всё

    $ cd HydroFOSS
    $ make MODULE_TOPDIR=~/bin/grass-6.4.0RC6/grass-6.4.0/grass-6.4.0/ 
    (это в моем случае, в вашем -- подставьте свой путь к каталогу, куда была установлена GRASS)
  • Заходим по очереди в каталоги
    ~/grass_addons/HydroFOSS/r.evapo.PM
    ~/grass_addons/HydroFOSS/r.interception
    ~/grass_addons/HydroFOSS/r.snow

    и в каждом выполняем команду

    Код: Выделить всё

    $ make MODULE_TOPDIR=~/bin/grass-6.4.0RC6/grass-6.4.0/grass-6.4.0/ install
  • Модули r.evapo.PM, r.interception, r.snow должны оказаться в каталоге /home/user/bin/grass-6.4.0RC6/grass-6.4.0/grass-6.4.0/bin/ и могут быть запушены в только что установленной GRASS
------------------------------------------------------
Теперь и сам понимаю, что установка не из простых.. Найду более легкий способ -- напишу.
------------------------------------------------------
Если будут непонятки / ошибки / вопросы -- пишите сюда, будем учиться ставить доп. модули GRASS вместе :)
Последний раз редактировалось Александр Мурый 31 окт 2010, 16:39, всего редактировалось 2 раза.
Редактор материалов, модератор форума

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 31 окт 2010, 14:54

Да, забыл написать: установка дополнений GRASS в Debian/Ubuntu, как сказано тут http://grass.osgeo.org/wiki/Compile_and ... ev_package с помощью пакета grass-dev у меня не получилась.

Так что потребовалась установка GRASS из исходников.
Редактор материалов, модератор форума

Trace
Активный участник
Сообщения: 153
Зарегистрирован: 14 окт 2009, 05:07
Репутация: 0
Откуда: Красноярск
Контактная информация:

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Trace » 31 окт 2010, 16:37

amuriy вы уверены что неошиблись? вроде команда aptitude

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 31 окт 2010, 16:39

спасибо, исправил. Очепятка.
Редактор материалов, модератор форума

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 31 окт 2010, 19:41

Есть еще специальный модуль для установки дополнений g.extension и скрипт gem64 (GRASS extension manager), но в обычной установке их нет. Надо бы и с ними разобраться..
Редактор материалов, модератор форума

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение KolesovDmitry » 31 окт 2010, 20:30

amuriy писал(а):Есть еще специальный модуль для установки дополнений g.extension и скрипт gem64 (GRASS extension manager), но в обычной установке их нет. Надо бы и с ними разобраться..
Как нет? Как минимум g.extension есть (GRASS 6.4, поставлен из репозитория UbuntuGIS). Как работает тоже понятно, (на уровне идеи)). Правда, у меня с наскока не получилось его завести (но, судя по ошибке - проблема не должна быть сложной: права доступа при компиляции). Например, устанавливаю модуль для нечеткой логики:

Код: Выделить всё

g.extension extension=r.fuzzy.system
Получаю:

Код: Выделить всё

Fetching <r.fuzzy.system> from GRASS-Addons SVN (be patient)...
A    r.fuzzy.system/flood.map
A    r.fuzzy.system/helpers.c
A    r.fuzzy.system/local_proto.h
A    r.fuzzy.system/flood.rul
A    r.fuzzy.system/rule_parser.c
A    r.fuzzy.system/main.c
A    r.fuzzy.system/system.c
A    r.fuzzy.system/description.html
A    r.fuzzy.system/f_result.png
A    r.fuzzy.system/fuzzylogic.c
A    r.fuzzy.system/io.c
A    r.fuzzy.system/map_parser.c
A    r.fuzzy.system/Makefile
 U   r.fuzzy.system
Получена редакция 44129.
Compiling <r.fuzzy.system>...
mkdir -p /build/buildd/grass-6.4.0/bin.i486-pc-linux-gnu
mkdir: невозможно создать каталог «/build»: Отказано в доступе
make: *** [/build/buildd/grass-6.4.0/bin.i486-pc-linux-gnu] Ошибка 1
ОШИБКА: Compilation failed, sorry. Please check above error messages.
Как видно, все скачивает, пытается компилировать, не может создать каталог /build. Нужно разобраться, как ему передать название каталога, в котором он будет компилировать.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 31 окт 2010, 21:32

Понятно, в UbuntuGIS, наконец, обновились до 6.4.0. А во многих дистрибутивах до сих пор RC6 и ниже, в них g.extension только в дополнениях.
Значит, имеет смысл после установки OSGeo-Live 4.0.1 обновить GRASS, а потом уже ставить дополнения.

Проверил g.extension с HydroFOSS. Выдает ошибку: GRASS Addon HydroFOSS not found in repository... и т.д. Это бред, т.к. дополнение точно доступно через SVN.

Полез посмотреть на g.extension подробнее (/usr/lib/grass64/scripts/g.extension). Это bash-скрипт. Там для получения списка дополнений из SVN делается условие "for d in d db g i m ps p r r3 v; do..." -- т.е. перечисляются первые буквы модулей (HydroFOSS не подходит под это условие), видно, потому и ошибка.
Редактор материалов, модератор форума

Gis user
Новоприбывший
Сообщения: 11
Зарегистрирован: 24 окт 2010, 12:57
Репутация: 0

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Gis user » 07 ноя 2010, 18:15

amuriy ОТЛИЧНАЯ ИНСТРУКЦИЯ. АГРАМАДНОЕ СПАСИБО!!!. Все получилось установить как по инструкции. Но теперь я немогу понять как правильно запустить нужную версию.
У меня возникла следующая ситуация. ГРАСС запускаю через консоль из директории куда он был установлен (/home/user/bin/) командой grass. После, программа запускается в текстовом режиме. Затем я задаю команду g.gui wxpython для перехода в графический режим. После перехода в GUI-режим я попытался найти установленный HydroFOSS и его компоненты, но так и не нашел. При этом модули r.snow, r.interceprion и r.evapo.PM установились без ошибок и присутствуют в директории /home/user/bin/grass-6.4.0RC6/grass-6.4.0/grass-6.4.0/bin/.
Возможно я не правильно запускаю программу?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 07 ноя 2010, 18:31

Рад, что пригодилось :)

В меню доп. модули не появляются. Лучше всего включить, как вы сделали, а потом просто набрать в консоли имя нужного модуля, например, r.snow. Заметьте, действует автодополнение по нажатию кпопки TAB. Должно появится окно модуля (в каком-либо интерфейсе..)
Если окна нет -- придётся пользоваться в консоли. Для списка опций наберите r.snow -help

Кстати, как я заметил, установленные таким способом модули -- не все из числа HydroFOSS (на сайте их на несколько штук больше).
Редактор материалов, модератор форума

Gis user
Новоприбывший
Сообщения: 11
Зарегистрирован: 24 окт 2010, 12:57
Репутация: 0

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Gis user » 07 ноя 2010, 19:15

Я попробывал запустить r.snow через консоль. Вот что получил в ответ.

GRASS 6.4.0 (spearfish60):~/bin/grass-6.4.0RC6/grass-6.4.0/bin > r.snow
Traceback (most recent call last):
File "/home/user/bin/grass-6.4.0RC6/grass-6.4.0/grass-6.4.0/etc/wxpython/gui_modules/menuform.py", line 1991, in <module>
GrassGUIApp( grassTask( sys.argv[1] ) ).MainLoop()
File "/home/user/bin/grass-6.4.0RC6/grass-6.4.0/grass-6.4.0/etc/wxpython/gui_modules/menuform.py", line 351, in __init__
xml.sax.parseString( getInterfaceDescription( grassModule ) , processTask( self ) )
File "/usr/lib/python2.6/xml/sax/__init__.py", line 49, in parseString
parser.parse(inpsrc)
File "/usr/lib/python2.6/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/usr/lib/python2.6/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/usr/lib/python2.6/xml/sax/expatreader.py", line 211, in feed
self._err_handler.fatalError(exc)
File "/usr/lib/python2.6/xml/sax/handler.py", line 38, in fatalError
raise exception
xml.sax._exceptions.SAXParseException: <unknown>:9:38: not well-formed (invalid token)

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 07 ноя 2010, 19:19

Куча ошибок wxPython, понятно.. Попробуйте запустить с интерфейсом Tcl/Tk (grass -tcltk) и проверить нужные модули там.
Редактор материалов, модератор форума

Gis user
Новоприбывший
Сообщения: 11
Зарегистрирован: 24 окт 2010, 12:57
Репутация: 0

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Gis user » 07 ноя 2010, 19:35

ЗАРАБОТАЛО :P.
ЕЩЁ РАЗ СПАСИБО!!

P.S.
прыгаю от счастья :lol:

Аватара пользователя
eucrariano
Активный участник
Сообщения: 104
Зарегистрирован: 26 авг 2009, 12:09
Репутация: 0
Откуда: Ukraine, Chernivtsy

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение eucrariano » 23 мар 2012, 13:56

Позвольте вставить и свои пять копеек. Система Debian Wheezy on Intel Core i3-2310M.
Не далее как вчера скомпилировал Грас 6.4.2 со следующими параметрами:
Спойлер
CFLAGS="-g -Wall -mtune=nocona -m64 -minline-all-stringops" ./configure --prefix=/home/eucrariano/bin/grass-6.4.2 --enable-64bit --with-libs=/usr/lib --enable-largefile --enable-shared --with-x --x-includes=/usr/include/X11/ --x-libraries=/usr/lib/X11/ --with-gdal=/usr/bin/gdal-config --with-readline --with-cairo --with-sqlite --with-postgres --with-postgres-includes=/usr/include/postgresql --with-freetype --with-freetype-includes=/usr/include/freetype2 --with-cxx --with-tcltk --with-tcltk-includes=/usr/include/tcl8.6/ --with-python=/usr/bin/python2.7-config --with-wxwidgets=/usr/lib/x86_64-linux-gnu/wx/config/base-unicode-release-2.8 --with-proj-share=/usr/share/proj -with-odbc --with-blas --with-blas-includes=/usr/include/ --with-blas-libs=/usr/lib/ --with-lapack --with-lapack-includes=/usr/include/ --with-lapack-libs=/usr/lib/ --with-fftw --with-fftw-includes=/usr/include/ --with-fftw-libs=/usr/lib/ --with-geos --with-motif --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql --with-cxx --with-readline
CFLAGS="-g -Wall -mtune=nocona -m64 -minline-all-stringops" ./configure --prefix=/home/eucrariano/bin/grass-6.4.2 --enable-64bit --with-libs=/usr/lib --enable-largefile --enable-shared --with-x --x-includes=/usr/include/X11/ --x-libraries=/usr/lib/X11/ --with-gdal=/usr/bin/gdal-config --with-readline --with-cairo --with-sqlite --with-postgres --with-postgres-includes=/usr/include/postgresql --with-freetype --with-freetype-includes=/usr/include/freetype2 --with-cxx --with-tcltk --with-tcltk-includes=/usr/include/tcl8.6/ --with-python=/usr/bin/python2.7-config --with-wxwidgets=/usr/lib/x86_64-linux-gnu/wx/config/base-unicode-release-2.8 --with-proj-share=/usr/share/proj -with-odbc --with-blas --with-blas-includes=/usr/include/ --with-blas-libs=/usr/lib/ --with-lapack --with-lapack-includes=/usr/include/ --with-lapack-libs=/usr/lib/ --with-fftw --with-fftw-includes=/usr/include/ --with-fftw-libs=/usr/lib/ --with-geos --with-motif --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql --with-cxx --with-readline
Задача была по-максимуму включить все возможные функции. Получилось:
Source directory: /home/builder/grass-6.4.2/grass-6.4.2
Build directory: /home/builder/grass-6.4.2/grass-6.4.2
Installation directory: ${prefix}/grass-6.4.2
Startup script in directory: ${exec_prefix}/bin
C compiler: gcc -g -Wall -mtune=nocona -m64 -minline-all-stringops
C++ compiler: c++ -g -O2
Building shared libraries: yes
64bit support: yes
OpenGL platform: X11

MacOSX application: no
MacOSX architectures:
MacOSX SDK:

Tcl/Tk NVIZ: yes

BLAS support: yes
C++ support: yes
Cairo support: yes
DWG support: no
FFMPEG support: no
FFTW support: yes
FreeType support: yes
GDAL support: yes
GEOS support: yes
GLw support: no
JPEG support: yes
LAPACK support: yes
Large File support (LFS): yes
Motif support: yes
MySQL support: yes
NLS support: no
ODBC support: yes
OGR support: yes
OpenGL support: yes
PNG support: yes
PostgreSQL support: yes
Python support: yes
Readline support: yes
SQLite support: yes
Tcl/Tk support: yes
wxWidgets support: yes
TIFF support: yes
X11 support: yes

Поскольку пакетов в системе намешано немало, рекомендации давать что за чем устанавливать сложно. Проще (для меня) запустить конфигурирование с такими параметрами и читая ругательства доустанавливать все, что просит система.
Исходя из того, что проц не одноядерный, запускал все командой make -j 7 : за 2 минуты ГРАСС компилится полностью (разница во времени супротив простой маке - 10 минут)

При добавлении --with-ffmpeg --with-ffmpeg-includes="/usr/include/libpostproc /usr/include/libswscale /usr/include/libavcodec /usr/include/libavformat /usr/include/libavutil" --with-ffmpeg-libs="/usr/lib" вклюется желаемое FFMPEG support, но при компиляции матюки и NVIZ не компилируется. С этим так и не разобрался.

Вроде все работает.
А вот по поводу расширений. Ставлю v.mkhexgrid через g.extension: грасс пытается компилировать, не получается - ошибка. Поэтому создал папку для аддонов и простым скачиванием положил туда этот скрипт. И из терминала он запускается без проблем. А вот другие так и не поставились. Что-то не так делаем или мы - или разработчики слишком уж усложнили все.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение Александр Мурый » 23 мар 2012, 20:34

Насчёт FFmpeg: никогда не собирал GRASS с ним, так что не подскажу, к сожалению.
Насчёт аддонов: инструкция совсем не помогает?

Кстати, GRASS не может компилировать <v.mkhexgrid>, т.к. это питон-скрипт. Нет, я знаю, что код на питоне как-то компилируется, но чтобы GRASS-скрипты комп-сь, не видел никогда. Шелл- и питон-скрипты можно просто скопировать в нужное место и задать путь в PATH (ну или GRASS_ADDONS_PATH).
Редактор материалов, модератор форума

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Как устанавливать GRASS Add-ons в Linux

Сообщение rhot » 23 мар 2012, 21:26

Заголовочные файлы для ffmpeg я собрал все в одну папку - завелось всё нормально, NVIZ тоже пашет.
Вот как я запускал configure для grass:
./configure --with-ffmpeg --with-motif --with-freetype --with-ffmpeg-includes=/usr/include/ffmpeg_includes/ --with-tcltk-includes=/usr/include/tcl8.4/ --with-motif-includes=/usr/include/Xm --with-freetype-includes=/usr/include/freetype2 --with-postgres --with-postgres-includes=/usr/include/postgresql/
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ответить

Вернуться в «GRASS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя