Так что я смог установить Synergy на Kali, загрузив файл .deb с их сайта. Когда я запускаю его, появляются окна, и я могу ввести IP-адрес своего сервера с моего основного ПК, но когда я нажимаю "Пуск", я получаю это сообщение, которое просто заполняет журнал.

[2017-07-03T23:27:48] INFO: starting server [2017-07-03T23:27:48] INFO: config file: /tmp/qt_temp/.hX1753 [2017-07-03T23:27:48] INFO: log level: INFO /usr/bin/synergys: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory [2017-07-03T23:27:48] ERROR: process exited with error code: 127 [2017-07-03T23:27:48] INFO: detected process running, auto restarting

Я знаю, что ошибка 127 означает, что она пытается выполнить команду, которую не знает. Кто-нибудь знает решение для этого?

2 ответа2

1

Поэтому сегодня я попытался сделать то же самое, осознав, что сборки Kalian на их веб-сайте, а также компиляция из исходных инструкций недостаточны для Kali Linux 2017.1.

Сборка из исходного кода с их инструкциями приводит к возникновению чего-то вроде следующей ошибки, которая, вероятно, связана с другой версией OpenSSL, ожидаемой от Synergy:

Building CXX object src/lib/net/CMakeFiles/net.dir/SecureSocket.cpp.o
synergy/src/lib/net/SecureSocket.cpp: In member function ‘void SecureSocket::showSecureCipherInfo()’:
synergy/src/lib/net/SecureSocket.cpp:810:46: error: invalid use of incomplete type ‘SSL {aka struct ssl_st}’
  STACK_OF(SSL_CIPHER) * cStack = m_ssl->m_ssl->session->ciphers;
                                              ^~
In file included from /usr/include/openssl/crypto.h:31:0,
                 from /usr/include/openssl/comp.h:16,
                 from /usr/include/openssl/ssl.h:47,
                 from /root/synergy/src/lib/net/SecureSocket.cpp:27:
/usr/include/openssl/ossl_typ.h:144:16: note: forward declaration of ‘SSL {aka struct ssl_st}’
 typedef struct ssl_st SSL;
                ^~~~~~
src/lib/net/CMakeFiles/net.dir/build.make:134: recipe for target 'src/lib/net/CMakeFiles/net.dir/SecureSocket.cpp.o' failed
make[2]: *** [src/lib/net/CMakeFiles/net.dir/SecureSocket.cpp.o] Error 1
CMakeFiles/Makefile2:549: recipe for target 'src/lib/net/CMakeFiles/net.dir/all' failed
make[1]: *** [src/lib/net/CMakeFiles/net.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Going back to: /synergy
Error: make failed: 512

Следуя этой рекомендации, я обнаружил, что группа Synergy сообщила, что она исправлена в ветке v1.9 (из их ответа 15 мая 2017 года).

Оказывается, что их стабильная версия все еще находится на 1.8.8, что означает, что вам нужно установить ветку разработки 1.9.


Полная инструкция с комментариями

# Clone their git repo
git clone https://github.com/symless/synergy-core
cd synergy

# Switch to v1.9 dev branch
git checkout v1.9

# Install dependencies from their compilation guide
apt-get install build-essential cmake libavahi-compat-libdnssd-dev libcurl4-openssl-dev libssl-dev lintian python qt4-dev-tools xorg-dev fakeroot

# Install other dependencies required from CMakeLists
apt-get install libqt5xmlpatterns5-dev qtbase5-dev

# Create Makefile
cmake .

# Make and install
make
make install

# Run Synergy!
/usr/local/bin/synergy

Здесь может отсутствовать еще несколько зависимостей, но я не могу быть полностью уверен, потому что я обдумывал это довольно долго.

Наконец, добавьте приложение Synergy к своим программам запуска:

# Edit the launcher file
nano /usr/local/share/applications/synergy.desktop

# Change the path from /usr/bin to /usr/local/bin:
Path=/usr/local/bin
Exec=/usr/local/bin/synergy

Затем перезапустите GNOME с помощью Alt-F2 и введите r . Вы должны быть в состоянии найти Synergy в лаунчере (с новой иконкой из v1.9).


РЕДАКТИРОВАТЬ: Обновлен URL репозитория GitHub с symless/ synergy до symless/synergy-core.

0

Ключевой строкой здесь является то, что программа не может найти libssl.so.1.0.0.

Пример поиска

Убедитесь, что он установлен и обновлен.

apt-get install libssl1.0.0 libssl-dev

Добавить ссылки в соответствующих местах.

cd /lib/x86_64-linux-gnu sudo ln -s libssl.so.1.0.0 libssl.so.10 sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

Если это не сработает, вы можете использовать strace, чтобы найти, где вызывается libssl.

strace Synergy

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .