准备工作:安装依赖
确保系统已安装编译工具和DBus依赖库:
sudo apt install build-essential git autoconf automake libtool \ libexpat1-dev libsystemd-dev libglib2.0-dev # Fedora/CentOS/RHEL sudo dnf groupinstall "Development Tools" sudo dnf install git autoconf automake libtool \ expat-devel systemd-devel glib2-devel
获取源码
推荐从官方仓库下载稳定版本(以dbus-1.14.10为例):
wget https://dbus.freedesktop.org/releases/dbus/dbus-1.14.10.tar.gz tar -xzvf dbus-1.14.10.tar.gz cd dbus-1.14.10
注意:最新源码可通过DBus官网或Git仓库获取。
配置编译选项
运行configure
脚本生成Makefile,常用参数:
./configure \ --prefix=/usr/local \ # 安装路径(默认/usr/local) --sysconfdir=/etc \ # 配置文件目录 --enable-systemd \ # 集成systemd支持 --enable-user-session \ # 启用用户会话 --with-systemduserunitdir=/usr/lib/systemd/user # systemd用户单元目录
关键选项说明:
--disable-doxygen-docs
:跳过文档生成(加速编译)--enable-x11-autolaunch
:启用X11自动启动--without-x
:禁用X11支持(服务器环境)
编译与安装
- 编译源码:
make -j$(nproc) # 使用所有CPU核心加速编译
- 安装到系统:
sudo make install
安装后配置
- 更新动态库链接:
sudo ldconfig
- 验证安装:
dbus-daemon --version # 应输出类似 "D-Bus Message Bus Daemon 1.14.10"
- 启动DBus服务:
- 系统级Bus:
sudo cp etc/dbus-1/system.conf /etc/dbus-1/ sudo systemctl enable dbus # 启用systemd服务(若支持)
- 用户级Bus:自动随桌面环境启动。
- 系统级Bus:
常见问题解决
- 依赖缺失错误:
- 检查
config.log
文件定位缺失的库,安装对应-dev
或-devel
包。
- 检查
- 版本冲突:
- 若系统已预装DBus,通过
--prefix
指定新路径(如/opt/dbus
),并通过环境变量覆盖默认路径:export PATH=/opt/dbus/bin:$PATH export PKG_CONFIG_PATH=/opt/dbus/lib/pkgconfig:$PKG_CONFIG_PATH
- 若系统已预装DBus,通过
- 启动失败:
- 检查
/var/log/messages
或journalctl -u dbus
查看日志。
- 检查
卸载编译版
sudo make uninstall # 在源码目录执行 # 手动删除残留文件 sudo rm -rf /usr/local/lib/libdbus-* /usr/local/bin/dbus-*
引用说明
- DBus官方源码:https://dbus.freedesktop.org/releases/dbus/
- 编译文档参考:dbus/dbus/INSTALL
- 依赖库说明:freedesktop.org/wiki/Software/dbus
提示:生产环境建议优先使用发行版预编译包(
apt install dbus
/dnf install dbus
),仅当需要新特性或调试时才手动编译。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8644.html