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 "${@}"
Другие вопросы по тегам