Сборка и установка пакета Planner под Unix/Linux

Данное руководство содержит инструкции по построению Planner из исходного кода, в частности, для дистрибутива Fedora Core, но также может применяться к другим дистрибутивам.

Мы с радостью примем описания установки пакета Planner для других дистрибутивов и/или операционных систем.

Установка из архива Tarball с исходными кодами

Данное руководство написано для пакета Planner 0.12 и дистрибутива Linux Fedora Core 2. Иные сочетания дистрибутива Linux и версии Planner могут потребовать изменений процедуры установки, таких например, как удовлетворения не приведенных здесь зависимостей.

Данное руководство предполагает, что вы вошли в систему как root, что вы загружаете все файлы в директорию с именем /root/downloads, и если не указано иное, навигация начинается с директории /root.

Установка базовой системы

Чтобы успешно построить Planner из исходного кода, необходимо начать с Linux с настроенными основными требованиями. Данное руководство ориентировано на дистрибутив Fedora Core, поэтому перечисленные здесь группы пакетов относятся к этому дистрибутиву. Если установка происходит не на Fedora, просто следуйте этому руководству, и при возникновении проблем просмотрите главу «Известные проблемы».

  • The Gnome Desktop environment
  • Development Tools
  • X Software Development
  • Gnome Software Development

Если вы начинаете с установки новой системы Fedora Core, убедитесь, что все эти пакеты выбраны. Если у вас есть существующая установка системы, и не все нужные пакеты установлены, вы можете использовать приложение system-config-packages для установки требуемых пакетов. Убедитесь, что вы вошли в систему как root, затем выберите [Applications ‣ System Settings ‣ Add/Remove Applications], или наберите команду system-config-packages в окне терминала.

Зависимости Planner

Предварительные условия, которые необходимы пакету Planner для базовых действий:

Пакет Версия
glib-2.0 >= 2.4.0
gobject-2.0  
gmodule-2.0  
gtk+-2.0 >= 2.4.0
libgnomecanvas-2.0 >= 2.6.0
libgnomeui-2.0 >= 2.6.0
libglade-2.0 >= 2.4.0
libbonoboui-2.0 >= 2.6.0
libgnomeprintui-2.2 >= 2.6.0
gnome-vfs-2.0 >= 2.6.0
gconf-2.0 >= 2.6.0

Большинство этих требований в Fedora Core 2 удовлетворены, кроме libglade-2.0 и libgnomeprintui-2.2. Чтобы убедиться в этом, воспользуйтесь командой rpm:

# rpm -qa | grep libglade
  pygtk2-libglade-2.2.0-1
  libglade2-devel-2.3.6-1
  libglade-0.17-13.2.1
  libglade-devel-0.17-13.2.1
  libglade2-2.3.6-1

rpm – это утилита управления пакетами Red Hat. При помощи опции -qa будет выведен список всех установленных пакетов, а обработка результатов при помощи grep дает простую возможность найти пакеты без знания их точных названий.

Выводимая информация ясно показывает, что libglade2 – версии 2.3.6-1, а нам нужна версия 2.4 или выше. Вы можете повторить это для каждого из необходимых пакетов, чтобы быть уверенным в том, что нужно сделать в вашей системе.

Зависимости сборки

Исходные файлы для всех пакетов, которые требуются для Planner, (а также и сам Planner) можно найти по адресу http://ftp.gnome.org/pub/gnome/sources/. Каждый из пакетов по ссылке назван по имени. Чтобы получить пакет, просто найдите его имя и выберите соответствующую директорию. Следующий набор перечисленных поддиректорий – это номера версий. Выберите папку для версии, которая требуется для Planner. Вы, конечно, можете выбрать более позднюю версию, чем требуется, если она присутствует, но тогда возникает риск, что может потребоваться установка дополнительных пакетов, если тот пакет, который вы выбрали, требует более поздних версий, чем установленные в вашей системе, так что безопаснее работать с теми версиями, что требуется и не больше.

Сборка libglade

Предполагая, что вы успешно скачали libglade-2.4.0.tar.gz, теперь нужно распаковать его.

# tar -xzvf downloads/libglade-2.4.0.tar.gz

Эта команда распакует файл в новую директорию, которая называется libglade-2.4.0; перейдите в эту директорию и выполните команды configure, make, и make install:

# cd libglade-2.4.0
# ./configure
# make
# make install

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

configure проверяет зависимости, необходимые для выполнения сборки и создает Makefile и другие файлы, требуемые для компиляции программного обеспечения.

make компилирует программное обеспечение, а make install копирует полученные исполняемые и иные файлы в целевые директории.

Установка PKG_CONFIG_PATH

Для управления флагами компиляции/ссылок на библиотеку используется утилита pkg-config. При компиляции библиотек, таких как libglade, устанавливается файл с именем libglade-2.0.pc. В нем содержится информация, необходимая для других программ, которые зависят от библиотеки, для успешного поиска и ссылок на библиотеку.

Проверьте вывод команды make install, которую вы запускали в предыдущей секции. Вы должны увидеть примерно следующее:

test -z "/usr/local/lib/pkgconfig" || mkdir -p -- .  "/usr/local/lib/pkgconfig"
/usr/bin/install -c -m 644 'libglade-2.0.pc'
'/usr/local/lib/pkgconfig/libglade-2.0.pc'

Данная строка показывает, что файл libglade-2.0.pc был установлен в директорию /usr/local/lib/pkgconfig. Нам необходимо убедиться, что при компиляции других программ и библиотек, которым требуется libglade, будет известно, где находится указанный файл.

Примечание

Если вы не можете найти вышеупомянутую информацию в выводе команды make install, попробуйте воспользоваться командой locate для поиска файла. Например: locate libglade-2.0.pc. Вам вначале может понадобиться обновить базу данных locate при помощи команды updatedb.

Чтобы проверить, находит ли pkg-config только что скомпилированные библиотеки, воспользуйтесь следующей командой:

# pkg-config --modversion libglade-2.0
  2.3.6

Как можно видеть, pkg-config возвращает номер версии 2.3.6 – не 2.4.0! Так что когда вы запустите configure для следующего пакета, которому требуется libglade-2.0 => 2.4, будет найдена только старая версия, что вызовет появление сообщений об ошибках. Чтобы исправить это, установите переменную окружения PKG_CONFIG_PATH так, чтобы она указывала на правильную директорию:

# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Если вы теперь повторите команду pkg-config, вы получите:

# pkg-config --modversion libglade-2.0
  2.4.0

Это лучше.

Построение иных зависимостей

Теперь, когда мы установили переменную окружения PKG_CONFIG_PATH, оставшаяся часть процесса установки должна пройти гладко. Прочие зависимости (pango 1.5, libgnomeprint 2.6 и libgnomeprintui 2.6) будут построены тем же способом, который использовался для libglade-2.0. Давайте кратко перечислим действия по шагам.

  • Скачать исходные коды пакета с сайта http://ftp.gnome.org/pub/GNOME/sources/.
  • Распаковать пакет: # tar -xzvf downloads/[packagename]
  • Перейти в поддиректорию: # cd [packagedir]
  • Выполнить configure: # ./configure
  • Выполнить make: # make
  • Выполнить make install: # make install
  • Вернуться в домашнюю директорию: # cd ..

Построение пакета Planner

Если вы строите пакет Planner 0.12 на Fedora Core 2, то основные зависимости для построения Planner с его функциональностью по умолчанию удовлетворены, и процедура будет та же самая, как когда вы строили пакеты, от которых зависит Planner: скачивание, распаковка, configure, make, и make install.

После установки Planner может быть запущен командой Planner.

Если вы строите какую-либо другую версию Planner, или не используете Fedora Core 2, то вы можете обнаружить зависимые пакеты, когда вы выполняете шаг configure В качестве примера и удобной подводке к следующей теме попробуем запросить configure подключить дополнительную функцию – функциональность базы данных.

# ./configure --enable-database
  ...
  checking for libgda >= 1.0... Package libgda was not found in
  the pkg-config search path.
  Perhaps you should add the directory containing `libgda.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'libgda' found

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

Сборка Planner с поддержкой базы данных

Так как компиляция Planner с поддержкой баз данных требует пакета libgda, скачайте его с сайта http://ftp.gnome.org/pub/GNOME/sources/. Я использовал версию 1.1.6. После распаковки пакета и запуска configure, вы заметите, что включено не очень многое:

Configuration summary
  Installation prefix = /usr/local
  Providers
     XML = yes
     Berkeley DB = yes
     FireBird = no
     FreeTDS = no
     IBM DB2 = no
     MDB (MS Access) = no
     MySQL = no
     mSQL = no
     ODBC = no
     Oracle = no
     PostgreSQL = no
     SQLite = no
     Sybase = no
     xBase (dBase, Clipper, FoxPro) = no
     LDAP = yes

Базой данных дял Planner по умолчанию является PostgreSQL, поэтому его нужно установить. Обязательно установите его с распространяемыми пакетами. Когда PostgreSQL установлен, вернитесь в поддиректорию libgda и повторно запустите configure Если PostgreSQL установлен правильно, вы должны увидеть вывод, показывающий включенную поддержку PostgreSQL. Продолжайте и запустите команды make и make install.

Теперь вы можете вернуться в вашу директорию Planner и перезапустить команду configure --enable-database. Вы должны увидеть экран, подтверждающий что поддержка базы данных бедут включена в сборку:

Planner prefix                : /usr/local
Build API docs                : no
Python bindings               : yes
Python plugin                 : no
Dotnet bindings               : no
Database/GDA support          : yes
Evolution Data Server support : no

Мы на последнем этапе. Теперь запустите make и make install (к настоящему времени я предполагаю, что вы заметили шаблон действий). Затем запустите приложение с помощью команды planner.

Чтобы настроить базу данных PostgreSQL для использования с Planner, следуйте инструкциям Руководства пользователя по Planner, которое вы можете открыть в Planner при помощи меню [Help ‣ User Guide]. Найдите раздел «Configuring a Planner database».

Установка из SVN

Установка Planner из SVN очень мало отличается от установки из исходного архива. Так что инструкция в этом разделе будет очень короткой.

По сути, единственная разница в компиляции Planner при помощи SVN состоит в том, как вы получаете исходный код. Вместо того, чтобы получить архив исходного кода с сайта http://ftp.gnome.org/pub/gnome/sources/, как это описано в разделе “Построение пакета Planner”, вы получаете дерево исходных кодов при помощи следующей команды:

# svn co http://svn.gnome.org/svn/planner/trunk%20planner

Примечание

Указанный метод устарел, и для получения исходных кодов следует использовать git:

# git clone git://git.gnome.org/planner

Эта команда создает директорию с именем /planner, которая содержит наиболее свежие исходные коды Planner из архива, в вашей текущей директории.

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

#  cd planner
#  ./autogen.sh
#  make
#  make install

Известные проблемы

В данном разделе перечислены возможные проблемы и способы их решения.

Симптом:

У вас установлен SUSE и вы получили сообщение об ошибке примерно следующего вида, например при выполнении команды configure:

can't read /usr/lib/libgcrypt.la: No such file or directory

Однако команда rpm -qv libgcrypt показывает вам, что libgcrypt установлена.

Причина: libgcrypt содержит библиотечные файлы только для динамического связывания.

Решение: В SUSE необходимо установить пакет libgcrypt-devel, содержащий файлы для статического связывания. Установите его следующим образом:

yast2 -i libgcrypt-devel

Симптом:

У вас установлен SUSE и вы получили следующее сообщение об ошибке, например при выполнении команды configure:

grep: /opt/gnome/lib/libgnome-keyring.la: No such file or directory
/usr/bin/sed: can't read /opt/gnome/lib/libgnome-keyring.la: No such file or
directory
libtool: link: `/opt/gnome/lib/libgnome-keyring.la' is not a valid libtool
archive
make[3]: *** [libeggrecent.la] Error 1

Однако команда rpm -qv gnome-keyring показывает, что gnome-keyring установлен.

Причина: gnome-keyring содержит только библиотечные файлы для динамического связывания.

Решение: В SUSE необходимо установить пакет gnome-keyring-devel, содержащий файлы для статического связывания. Установите его следующим образом:

yast2 -i gnome-keyring-devel

Симптом:

У вас установлен SUSE Linux и вы только что установили Planner, например, при помощи команд ./configure && make && make install. При запуске planner возникает сообщение об ошибке:

planner: error while loading shared libraries:
libplanner-1.so.0: cannot open shared object

Причина: Эта общая библиотека не может быть найдена.

Решение: Установите переменную окружения LD_LIBRARY_PATH либо в вашем .bashrc (для текущего пользователя) либо в файле /etc/environment (для исправления в системе)

LD_LIBRARY_PATH=/usr/local/lib

Вы можете проверить, что /usr/local/lib – правильная директория в вашей системе путем выполнения команды:

locate libplanner-1.so.0