在树莓派上更新 dbus
Posted
技术标签:
【中文标题】在树莓派上更新 dbus【英文标题】:Update dbus on Raspberry Pi 【发布时间】:2017-08-22 11:31:13 【问题描述】:我需要更新我的 Raspberry Pi 上的 DBus,以便升级到最新的 Bluez 版本(我希望能获得性能优势)。我不能使用包安装,因为最新的打包版本是旧的,所以我“配置/制作/制作安装”。
问题在于它似乎与旧版本一起安装,但在不同的目录中。所以,如果我运行dbus-daemon --version
,我会在安装后看到旧版本号。
原始版本(和启动路径)是/usr/bin,而我的安装是/usr/arm-linux-gnueabi/bin。我确实尝试在 /lib/systemd/system/dbus.service 中编辑启动路径,但在此之后,Linux 无法启动。
所以现在我的 Pi 上有两个版本的 dbus,旧版本正在启动。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:这是我为在我的 Raspberry Pi 3 上成功安装 D-Bus 1.10.18 和 Raspbian Jessie Lite Fresh(发布 2017-04-10)所做的:
[我使用 aptitude 而不是 apt-get。你可以一个一个替换。]
sudo aptitude install -y libapparmor1
cd ~
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.10.18-1_armhf.deb
sudo dpkg --auto-deconfigure -i libdbus-1-3_1.10.18-1_armhf.deb
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/dbus_1.10.18-1_armhf.deb
sudo dpkg -i dbus_1.10.18-1_armhf.deb
sudo reboot
重启后:
pi@RasPi3-Tests:~ $ dpkg -l dbus
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom Version Architecture Description
+++-=======================-================-================-===================================================
ii dbus 1.10.18-1 armhf simple interprocess messaging system (daemon and ...
和:
pi@RasPi3-Tests:~ $ dbus-daemon --version
D-Bus Message Bus Daemon 1.10.18
Copyright (C) 2002, 2003 Red Hat, Inc., CodeFactory AB, and others
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
【讨论】:
【参考方案2】:在回答您的问题之前,请分享来自“journalctl -xe
”或“systemctl status dbus
”的失败日志。以下可能会解决您的问题,
systemctl stop dbus
"
systemctl daemon-reload
(更改任何守护进程的服务文件后需要运行)
再次启动 dbus,systemctl start dbus
。
检查“echo $PATH”中可用的二进制路径,如果没有,将其导出。在您的情况下,export PATH=/usr/arm-linux-gnueabi/bin:$PATH
应该会有所帮助
注意:当您停止 dbus 时,许多应用程序将停止工作。
【讨论】:
感谢您的想法 - 我尝试了所有方法,但它仍在加载旧的守护进程。 systemctl status dbus 给出以下输出: dbus.service - D-Bus 系统消息 Bus Loaded: loaded (/lib/systemd/system/dbus.service; static) Active: active (running) since Thu 2017-03-30 05:世界标准时间 51:38; 6分钟前 Docs: man:dbus-daemon(1) Main PID: 434 (dbus-daemon) CGroup: /system.slice/dbus.service └─434 /usr/bin/dbus-daemon --system --address=systemd : --nofork --... 如果我运行“dbus-daemon --version”,我会看到旧版本 1.8.22,但是如果我运行“/usr/arm-linux-gnueabi/bin/./dbus-daemon” --version" 我看到的是新安装的版本,1.10.16 从状态中我可以看到dbus已经启动并且在/usr/bin路径下运行良好。在 dbus.service 文件中更新 /usr/arm-linux-gnueabi/bin 的路径并重新启动守护程序。确保重新加载守护程序。如果 dbus 启动失败,则共享“systemctl status dbus”输出。 您也可以使用“ps -ef | grep dbus”来检查dbus守护进程从哪个路径启动的dbus处于运行状态。 我还尝试使用“./configure --prefix=/usr --sysconfdir=/etc”进行配置,它将新版本安装在现有 dbus 上,但现在执行 dbus 命令时出现错误“dbus-daemon:/lib/arm-linux-gnueabihf/libdbus-1.so.3:没有可用的版本信息(dbus-daemon 需要)dbus-daemon:/lib/arm-linux-gnueabihf/libdbus-1。 so.3:没有可用的版本信息(dbus-daemon 需要) dbus-daemon:重定位错误:dbus-daemon:符号 _dbus_no_memory_message,版本 LIBDBUS_PRIVATE_1.10.16 未在文件 libdbus-1.so.3 中定义,带有链接时间参考”。 【参考方案3】:sudo apt-get install python3-dbus
【讨论】:
以上是关于在树莓派上更新 dbus的主要内容,如果未能解决你的问题,请参考以下文章