Библиотека сайта rus-linux.net
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 | используется для создания или чтения универсального уникального идентификатора |
| содержит функции API, используемые демоном сообщений D-BUS. D-BUS является первой библиотекой, в которой предложены средства обмена сообщениями вида 1:1 между двумя любыми приложениями; |
Перевод сделан с варианта оригинала, датированного 2011-12-16 19:54:18 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет Apache Ant-1.8.1 | Группа пакетов D-Bus Bindings |