Я пытаюсь установить BlueZ 5.50 на Ubuntu 16.04, потому что мне нужна поддержка MIDI.
Я скомпилировал и установил его следующим образом:
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
Проблема состоит в том, что это не обновляет /usr/sbin/bluetoothd
, который является версией по умолчанию, которая запускается, когда я перезагружаю.
bluetoothd -v
результаты в 5.37
но ./src/bluetoothd -v
результаты в 5.50
.
Единственная версия в пути, кажется, старая версия:
whereis bluetoothd
bluetoothd: /usr/sbin/bluetoothd /usr/share/man/man8/bluetoothd.8.gz
Почему сценарий установки сохраняет старую версию? Как я могу обновить все к новой версии? Я имею к?
Прямо сейчас MIDI BLE, кажется, работает, даже со старой версией bluetoothd.
Если Вы скомпилируете программу из источников и не будете использовать предварительно скомпилированные dpkg пакеты, то dpkg пакеты не будут затронуты или изменены всегда.
Обычно, configure
шаг дает сборке команду использовать/usr/local в качестве префикса установки вместо/usr. Это должно предотвратить самоскомпилированный материал для переопределения двоичных файлов или других файлов, которые поставляются в dpkg пакете.
Так Вы bluetoothd
двоичный файл находится где-нибудь в/usr/local.
root@localhost:~/bluez-5.50# find /usr/local -name bluetoothd
/usr/local/libexec/bluetooth/bluetoothd
К сожалению, или к счастью, не действительно уверенный, make install
действительно помещает a systemd
сервис и цель в/lib/systemd/system, который переопределяет файлы от dpkg пакета bluez
.
По-моему, эти два файла должны войти /etc/systemd/system
предотвратить, например, обновление bluez
перезапись вручную установленной версии. Для создания этого также необходимо добавить --with-systemdsystemunitdir=/etc/systemd/system
к Вашему configure
управляйте и переустановите новый блюз и старый блюз.
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