fedora, студия tizen: "не удалось запустить SDB", не удается подключить устройство tizen
Это просто обмен знаниями. Я надеюсь, что сэкономил чье-то время.
Описание проблемы
Если у вас Fedora Linux (сейчас я использую f25), но вы хотите использовать Tizen Studio (официально она работает только с Ubuntu Linux), вы можете столкнуться с этими проблемами после установки и запуска Studio:
- Сообщение об ошибке "не удалось запустить SDB" при каждом запуске Studio
- Вы можете просматривать устройства Tizen из своей сети, но не можете подключиться
Проблема не запускается sdb tool (~/tizen-studio/tools/sdb
)
Для проверки подозреваемых вы можете попробовать запустить sdb
, он должен был с ошибкой: sdb: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
,
Тогда, если вы проверите sdb
с ldd
команда, вы увидите, что libcrypto.so.1.0.0
не найден:
user@host$ ldd ~/tizen-studio/tools/sdb
linux-vdso.so.1 (0x00007ffc9dbf9000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd8fc5be000)
libcrypto.so.1.0.0 => not found
libc.so.6 => /lib64/libc.so.6 (0x00007fd8fc1f8000)
/lib64/ld-linux-x86-64.so.2 (0x0000560aab3af000)
Решение
К сожалению, эта проблема не может быть решена с помощью простого symlink
в libcrypto.so
а также libssl.so
и на Fedora 25 (и, я полагаю, на Fedora 23 и 24 также). Итак, самый простой способ - получить эти библиотеки из репозитория Ubuntu. Нам нужен пакет libssl1.0.0_1.0.2g-1ubuntu9_amd64.deb
( ссылка на репозиторий mirror.yandex), но не забудьте выбрать свою архитектуру. Распакуйте этот пакет deb и скопируйте (как пользователь root) файлы libcrypto.so.1.0.0
а также libssl.so.1.0.0
в /usr/lib64
(или же /usr/lib
для арки i686). Затем запустите команду ldconfig
как корень.
После этих действий вы можете запустить sdb
команда:
user@host$ ~/tizen-studio/tools/sdb version
Smart Development Bridge version 2.2.91
После перезапуска Tizen Studio вы сможете подключиться к Tizen Devices.
2 ответа
Гораздо лучше оставить корневой раздел нетронутым. Вы можете написать скрипт, который предварительно загружает необходимые библиотеки и запускает двоичный файл sdb следующим образом:
$ cd ~/tizen-studio/tools/
$ mv ./sdb sdb.bin
$ mkdir ./lib
$ mv libcrypto.so.1.0.0 ./lib/
затем создайте скрипт с именем "sdb":
# sdb
LD_LIBRARY_PATH=./lib/ ./sdb.bin "$@"
$ chmod +x ./sdb
и все готово!
Я лично пользуюсь библиотеками из Steam.
Вот мой скрипт /usr/local/bin/sdb:
#!/bin/bash
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu
${HOME}/tizen-studio/tools/sdb "${@}"