J'essaie d'installer BlueZ 5.50 sur Ubuntu 16.04 car j'ai besoin du support de MIDI.
Je l'ai compilé et installé comme suit:
Sudo apt-get install libudev-dev
Sudo apt-get install libical-dev
Sudo apt-get install libreadline-dev
cd bluez-5.50
./configure --enable-midi
make -j8
Sudo make install
Le problème est qu'il ne met pas à jour /usr/sbin/bluetoothd
, qui est la version par défaut qui est démarrée lorsque je redémarre.bluetoothd -v
résulte en 5.37
mais ./src/bluetoothd -v
a pour résultat 5.50
.
La seule version dans le chemin semble être l'ancienne version:
whereis bluetoothd
bluetoothd: /usr/sbin/bluetoothd /usr/share/man/man8/bluetoothd.8.gz
Pourquoi le script d'installation conserve-t-il l'ancienne version? Comment puis-je tout mettre à jour dans la nouvelle version? Dois-je?
À l'heure actuelle, MIDI BLE semble fonctionner, même avec l'ancienne version de bluetoothd.
Si vous compilez un programme à partir de sources et n'utilisez pas de packages dpkg pré-compilés, les packages dpkg ne seront ni modifiés ni modifiés.
Normalement, l'étape configure
indique à la compilation d'utiliser / usr/local comme préfixe d'installation au lieu de / usr. Ceci afin d'empêcher que des choses auto-compilées ne remplacent les fichiers binaires ou d'autres fichiers fournis dans un paquet dpkg.
Ainsi, vous bluetoothd
binaire réside quelque part dans / usr/local.
root@localhost:~/bluez-5.50# find /usr/local -name bluetoothd
/usr/local/libexec/bluetooth/bluetoothd
Malheureusement ou heureusement, pas vraiment sûr, le make install
place un service systemd
et une cible dans / lib/systemd/system, qui remplace les fichiers du paquet dpkg bluez
.
À mon avis, ces deux fichiers devraient être placés dans /etc/systemd/system
pour empêcher, par exemple, une mise à jour de bluez
écrasant votre version installée manuellement. Pour ce faire, vous devez également ajouter --with-systemdsystemunitdir=/etc/systemd/system
à votre commande configure
et réinstaller le nouveau bluez et l'ancien bluez.
root@localhost:~/bluez-5.50# ./configure --enable-midi --with-systemdsystemunitdir=/etc/systemd/system
root@localhost:~/bluez-5.50# make
root@localhost:~/bluez-5.50# make install
root@localhost:~/bluez-5.50# apt-get install --reinstal bluez