Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 11. Системные утилиты Вперед

Пакет D-BUS-1.4.16

Знакомимся с пакетом D-BUS

D-BUS является системой шины сообщений, предлагающей приложениям простой способ обмена сообщениями. В составе D-BUS есть как системный демон (для таких событий, как "добавлено новое устройство" или "изменена очередь печати"), так и демон, запускаемый при регистрации в системе каждой новой сессии пользователя (для обычного межпроцессного обмена сообщениями между приложениями пользователя). Кроме того, шина сообщений собирается поверх фреймворка, предназначенного для передачи сообщений вида 1:1 и который может использоваться любыми двумя приложениям для непосредственного взаимодействия друг с другом (минуя демон шины обмена сообщениями).

Известно, что пакет правильно собирается и работает на платформе LFS-7.0.

Информация о пакете

  • Загрузка (HTTP): http://dbus.freedesktop.org/releases/dbus/dbus-1.4.16.tar.gz
  • Контрольная сумма MD5: MD5: 44a2a10678e7e50460879c3eb4453a65
  • Размер загружаемого пакета: 1,8 MB
  • Оценочный размер требуемого дискового пространства: 83 MB
  • Оценочное время сборки: 0,5 SBU

Зависимости пакета D-BUS

Обязательные

Expat-2.0.1 (предпочтительно) или libxml2-2.7.8

Необязательные

Xorg Libraries, D-Bus GLib Bindings-0.98 (для запуска тестов) и Doxygen-1.7.2 (для создания документации по API)

Обратите внимание, что скрипт configure похож на скрипт пакета xmlto-0.0.23, но ничего не делает, т.к. документация XML/HTML уже есть в дереве с исходным кодом.

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/dbus

Конфигурирование ядра

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

General Setup
  System V IPC

Установка пакета D-BUS

В роли пользователя root создайте системного пользователя и группу, предназначенные для доступа к шине системных сообщений:

groupadd -g 18 messagebus &&
useradd -c "D-BUS Message Daemon User" -d /dev/null \
        -u 18 -g messagebus -s /bin/false messagebus

Установите пакет D-BUS с помощью следующих команд (вы, возможно, сначала захотите с помощью команды ./configure --help посмотреть общее описание и добавить к команде configure, представленной ниже, все необходимые параметры):

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --libexecdir=/usr/lib/dbus-1.0  \
            --localstatedir=/var &&
make

Инструкции по тестированию приведены ниже.

Теперь в роли пользователя root выполните:

make install &&
mv -v /usr/share/doc/dbus /usr/share/doc/dbus-1.4.16

Набор тестов для этого пакета запустить не удастся, если не будет установлен пакет D-Bus GLib Bindings-0.98. Тесты требуют передачи дополнительных параметров в скрипт configure и обращения к дополнительным функциям двоичных модулей. Такой интерфейс не предназначен для выполнения сборки пакета D-BUS. Если вы хотите запускать тесты для каждого модуля, выполните следующие команды:

make distclean &&
./configure --enable-tests --enable-asserts &&
make &&
make check &&
make distclean

Обратите внимание, что если тесты запускаются внутри оболочки Midnight Commander, будет выдано сообщение о том, что они, возможно, не прошли.

Пояснение команд

--libexecdir=/usr/lib/dbus-1.0: Указывает, что устанавливаться будут только те двоичные файлы, которые используется только пакетом D-BUS, а директорий dbus-1 будет помещен в /usr/lib/dbus-1.0, а не в /usr/libexec.

--localstatedir=/var: Этот параметр указывает, что файл PID демона, сокет системной шины и файл uuid машины будут созданы в директории /var, а не в директории /usr/var.

--enable-tests: Строит дополнительные пути, используемые при тестировании кода. Конфигурирование заканчивается выдачей замечания, сообщающего об этом.

--enable-asserts: Включает отладочный код, выполняющий проверку инструкций, которые, как предполагается, должны быть истинными. В результате будет предотвращена выдача предупреждения, создаваемого параметром '--enable-tests', которое только указывает, что тесты завершились, и не сообщает о действительных результатах прохождения всех тестов. Однако данный параметр добавит свое собственное сообщение, на которое не следует обращать внимание при сборке пакета.

--disable-static: Предотвращает сборку и установку статических библиотек.

Конфигурирование пакета dbus

Конфигурационные файлы

/etc/dbus-1/session.conf, /etc/dbus-1/system.conf и /etc/dbus-1/system.d/*

Подробнее о конфигурировании

Конфигурационные файлы, указанные выше, по-видимому, менять не нужно. Если изменения необходимы, вы должны создать файл /etc/dbus-1/session-local.conf и/или файл /etc/dbus-1/system-local.conf и внести в них необходимые изменения.

Если в каком-нибудь другом пакете файл .service, используемый D-Bus, устанавливается не в стандартный директорий /usr/share/dbus-1/services, то директорий, куда устанавливается этот файл, нужно добавить в конфигурацию текущей сессии. Например, директорий /usr/local/share/dbus-1/services можно добавить в роли пользователя root с помощью следующих команд:

cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <!-- Искать файлы .service в директории /usr/local -->
  <servicedir>/usr/local/share/dbus-1/services</servicedir>

</busconfig>
EOF

Загрузочный скрипт

Чтобы в процессе перезагрузки системы автоматически запускать команду dbus-daemon, установите загрузочный скрипт /etc/rc.d/init.d/dbus, имеющийся в пакете blfs-bootscripts-20111226.

make install-dbus

Заметим, что это в загрузочном скрипте запускается только общесистемный демон D-BUS. Каждому пользователю, которому требуется доступ к сервисам D-BUS, нужно будет также запустить сессионный демон. Есть много вариантов запуска сессионного демона с помощью команды dbus-launch. Подробности об имеющихся параметрах и возможностях смотрите на странице man команды dbus-launch. Вот некоторые предложения и примеры:

  • Добавьте в файл ~/.xinitrc строчку с командой dbus-launch в строку файла ~/.xinitrc, которая будет запускать графическую среду вашего рабочего стола; смотрите раздел "Конфигурирование базовых пакетов GNOME".
  • Если вы пользуетесь менеджером xdm или каким-либо другим менеджер дисплеев, в котором происходит обращение к файлу ~/.xsession, вы можете добавить в ваш файл ~/.xsession строчку с командой dbus-launch, которая будет запускать графическую среду вашего рабочего стола. Синтаксис аналогичен примеру, приведенному в файле ~/.xinitrc.
  • Если вы пользуетесь менеджером gdm или каким-либо другим менеджер дисплеев, в котором для инициализации сессии применяются настроечные файлы, воспользуйтесь примером, приведенным в разделе "Подробнее о конфигурировании" и описывающим инструкции GDM по созданию файла с командой dbus-launch.
  • В примерах, приведенных ранее, используется команда dbus-launch, указывающая программу, которая должна быть запущена. Преимущество этого подхода в том (когда также используется параметр --exit-with-session), что в случае, когда указанная программа будет остановлена, сессионный демон будет также остановлен. Для запуска сессионного демона добавьте или в ваши системные или персональные скрипты запуска следующие строки:
    # Запустить сессионный демон D-BUS
    	eval `dbus-launch`
    	export DBUS_SESSION_BUS_ADDRESS
    	

    В этом случае сессионый демон не останавливается, когда вы выходите из командной оболочки, так что вы должны в ваш файл ~/.bash_logout добавить следующую строку:

    # Уничтожить сессионный демон D-BUS
    	kill $DBUS_SESSION_BUS_PID
    	
  • Написана рекомендация, в которой предлагаются способы запуска скриптов с помощью сессионного менеджера KDM, имеющемся в рабочем столе KDE. Идеи, изложенные в этой рекомендации, возможно, удастся использовать также и с другими сессионными менеджерами. С рекомендацией можно ознакомиться по ссылке http://www.linuxfromscratch.org/hints/downloads/files/execute-session-scripts-using-kdm.txtt.

Описание пакета

Установленные программы: dbus-cleanup-sockets, dbus-daemon, dbus-daemon-launch-helper, dbus-launch, dbus-monitor, dbus-send, and dbus-uuidgen

Установленные библиотеки: libdbus-1.{so,a}

Установленные директории: /etc/dbus-1/{session.d,system.d}, /usr/{include/dbus-1.0/dbus, lib/{dbus-1.0/include/dbus,dbus/dbus-1},share/dbus-1/{services, system-services}}, /var/{lib/dbus,run/dbus}

Краткое описание

dbus-cleanup-sockets

используется для очистки директория от остатков сокетов

dbus-daemon

является демоном шины сообщений D-BUS

dbus-launch

используется для запуска dbus-daemon из скрипта командной оболочки. Как правило, вызывается из скриптов, регистрирующих вход пользователей в систему

dbus-monitor

используется для мониторинга сообщений, поступающих через шину сообщений D-BUS

dbus-send

используется для отправки сообщения в шину сообщений D-BUS

dbus-uuidgen

используется для создания или чтения универсального уникального идентификатора

libdbus-1.{so,a}

содержит функции API, используемые демоном сообщений D-BUS. D-BUS является первой библиотекой, в которой предложены средства обмена сообщениями вида 1:1 между двумя любыми приложениями; dbus-daemon является приложением, использующим эту библиотеку для реализации демона шины сообщений

Перевод сделан с варианта оригинала, датированного 2011-12-16 19:54:18 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет Apache Ant-1.8.1   Группа пакетов D-Bus Bindings