Компиляция на Linux/Unix

Система сборки Gwyddion на Unix основана на GNU autotools (autoconf, automake, libtool), так же, как и большинство современного свободного программного обеспечения и программ с открытым исходным кодом под Unix. Если вы когда-либо собирали программы из исходников, вы, вероятно, уже встречались с autotools и знаете, что делать дальше. Этот раздел, тем не менее, будет описывать процесс сборки достаточно детально, чтобы быть понятным и тем, кто ещё этого не делал. Файл INSTALL в каталоге верхнего уровня архива с исходным кодом содержит общие инструкции по установке с помощью GNU autotools.

Быстрые инструкции

Если вам знакома последовательность действий:

tar -jxvf gwyddion-2.23.tar.xz
cd gwyddion-2.26
./configure
make install

Распаковка исходного кода

Распакуйте архив с исходным кодом командой

tar -jxvf gwyddion-2.26.tar.xz

заменяя 2.26 реальным номером версии. При этом будет создан каталог gwyddion-2.26 (снова с текущим номером версии вместо 2.26), перейдите с помощью cd в этот каталог. Все остальные действия по сборке будут проходить там.

Если в операционной системе отсутствует xz, можно скачать gwyddion-2.26.tar.gz (сжатый с помощью gzip) вместо предыдущего архива и распаковать его с помощью

tar -zxvf gwyddion-2.26.tar.gz

Однако, современные Unix и подобные им системы поддерживают и gzip, и xz, и заметно меньший gwyddion-2.26.tar.xz обычно будет лучшим вариантом.

Настройка

Запустите

./configure

чтобы сконфигурировать сборку Gwyddion.

Скрипт оболочки configure пытается угадать правильные значения для различных переменных, меняющихся от системы к системе и используемых в процессе компиляции. Он использует эти переменные чтобы создать Makefile в каждом каталоге пакета, набор заголовочных файлов с расширением .h, которые содержат зависящие от системы определения и некоторые другие вспомогательные файлы. В конце своей работы он создаёт другой скрипт оболочки config.status, который можно затем использовать для повторения текущей конфигурации, и файл config.log, который содержит подробности процесса детектирования и который полезно включать в сообщения об ошибках компиляции. В конце команда configure также выводит суммарную сводку о включенных и выключенных дополнительных опциях, включая причины почему опция была выключена.

Если configure пишет об отсутствии нужных пакетов, установите эти пакеты и перезапустите её. То же самое справедливо и для случая, если configure заканчивается успешно, но вы обнаружили, что забыли установить опциональный компонент, с которым хотели собрать Gwyddion. Возможно, что пакет не был найден или был неправильно определён даже если вы его установили, а именно если он был установлен в нестандартный каталог. В этом случае необходимо настроить определённые переменные окружения чтобы дать configure возможность найти эти пакеты:

PKG_CONFIG_PATH

Большинство пакетов идут вместе с так называемыми файлами pkg-config (.pc), которые описывают как программы должны собираться и линковаться с ними. configure использует информацию из этих файлов, следовательно, PKG_CONFIG_PATH должна быть установлена таким образом, чтобы там были перечислены все нестандартные какталоги с нужными файлами pkg-config. Чтобы добавить, например, установленную библиотеку GTK+ в /opt/gnome и установленную библиотеку FFTW3 в $HOME/opt/fftw3, нужно выполнить:

PKG_CONFIG_PATH=/opt/gnome/lib/pkgconfig:$HOME/opt/fftw3/lib/pkgconfig
export PKG_CONFIG_PATH

PATH, LD_LIBRARY_PATH

Может потребоваться настроить эти переменные чтобы включить нестандартные каталоги с исполняемыми файлами и библиотеками соответствующих пакетов.

CPPFLAGS, LDFLAGS

Может потребоваться настроить эти переменные чтобы включить нестандартные каталоги с заголовочными файлами и библиотеками пакетов, с которыми не шло файлов pkg-config, например, для libTIFF в /usr/local можно установить:

CPPFLAGS=-I/usr/local/include
export CPPFLAGS
LDFLAGS=-L/usr/local/lib
export LDFLAGS

Опция --prefix команды configure задаёт базовый каталог установки. Компоненты программы будут установлены в его подкаталоги bin, lib, share, и т.д. (которые будут созданы если они не существуют). Более детальное управление возможно с помощью опций, задающих отдельные подкаталоги, таких как --bindir, --libdir. Префикс по умолчанию – /usr/local/bin, чтобы установить Gwyddion в домашний каталог пользователя можно использовать, например команду

./configure --prefix=$HOME/opt/gwyddion

Если вы устанавливаете Gwyddion для личного использования это является рекомендованным вариантом, поскольку в этом случае не требуется выполнять действий с правами суперпользователя.

Настройки процесса конфигурирования

Необязательные возможности можно включить/выключить с помощью опций вроде --with-foo/--without-foo или --enable-foo/--disable-foo. Например, компиляция с FFTW3 может быть отключена командой:

./configure --without-fftw3

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

Полный список опций и важных переменных configure можно получить с помощью команды:

./configure --help

Некоторые вспомогательные действия при установке могут быть отключены при запуске configure: Обновление файлов FreeDesktop может быть отключено с помощью --disable-desktop-file-update. Установка схем GConf2 может быть отключена с помощью --disable-schemas-install. Тем не менее, обычной причиной отключения этих действий является то. что Gwyddion устанавливается на временное место вместо финального каталога (что обычно происходит при сборке пакетов в Linux). В этом случае вспомогательные действия отключаются автоматически при непустой переменной DESTDIR (см. раздел установка) и, следовательно, нет нужды отключать их в configure.

Если вы собираетесь накладывать патч или иным образом модифицировать исходный код Gwyddion запустите configure с опцией --enable-maintainer-mode чтобы включить различные правила обновления и пересборки, которые не используются при обычной компиляции. В зависимости от вида изменений, могут понадобиться некоторые дополнительные инструменты, описанные в разделе Снимок Subversion, разработка.

Компиляция

Запустите

make

и подождите, пока Gwyddion соберётся. Если команда configure завершилась без ошибок, компиляция тоже должна пройти успешно.

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

Установка

Gwyddion нужно установить перед запуском, его нельзя запустить неустановленным.

Выполните

make install

для установки Gwyddion в целевой каталог. Если вы устанавливаете Gwyddion в системный каталог, вам необходимо стать суперпользователем чтобы выполнить эту команду. Это единственная команда. которую обязательно нужно запускать от суперпользователя при установке. Например, используя sudo

sudo make install

Чтобы установить Gwyddion во временное место, например, для сборки пакета, установите переменную make DESTDIR на префикс, который будет добавлен ко всем целевым каталогам:

make install DESTDIR=/var/tmp/gwyddion-buildroot

Не переопределяйте переменные отдельных каталогов такие, как bindir, libdir.

Если вы не устанавливаете в системный каталог, т.е. устанавливаете в подкаталог домашнего каталога, может потребоваться настройка следующих переменных окружения в процессе установки:

  • GCONF_SCHEMA_CONFIG_SOURCE – местоположение схем GConf2
  • KDE4_MODULE_DIR – местоположение модулей KDE4

Также может потребоваться настройка переменной XDG_DATA_DIRS для полной интеграции с окружением рабочего стола.

Если вы установили Gwyddion в /usr/local и получили сообщение об ошибке libgwyapp.so.0 не может быть найдена, в вашей системе, по видимому, отсутствуют стандартные каталоги для библиотек в настройках динамического линкера. Такое было замечено на Ubuntu. Отредактируйте файл /etc/ld.so.conf и добавьте туда строку

/usr/local/lib

Запуск

Запуск Gwyddion обычно не требует дополнительных настроек.

Но некорректная реализация особенностей некоторых сред рабочего стола, может привести Gwyddion в нерабочее состояние и эту функциональность нужно отключить. Перехват главного меню программы в Unity делает большую часть меню Gwyddion недоступными. Это можно отключить сбросив переменную окружения UBUNTU_MENUPROXY при запуске Gwyddion:

UBUNTU_MENUPROXY= gwyddion

Отмена установки

Запустите

make uninstall

в каталоге, где ранее собирался Gwyddion для его удаления. Если вы уже утратили содержимое этого каталога, можно попробовать распаковать, настроить и собрать его точно так же, как ранее и после этого выполнить make uninstall, хотя результат зависит от вашей способности точно повторить процесс сборки.

Пакеты RPM

В основанных на RPM дистрибутивах GNU/Linux можно собрать RPM-пакеты напрямую из архивов с исходным кодом выполнив команду

rpmbuild -tb gwyddion-2.26.tar.xz

где 2.26 – текущая версия, как упоминалось ранее. Этот метод тестировался в основном на Fedora, openSuSE и Mandriva и spec-файл RPM содержит некоторые специальные положения для этих систем. Специальная поддержка других основанных на RPM систем может быть добавлена по запросу.