无法在 Kali 上运行 Synergy

无法在 Kali 上运行 Synergy

因此,我能够通过从他们的网站下载 .deb 文件在 Kali 上安装 Synergy。当我运行它时,窗口会弹出,我可以从主 PC 输入我的服务器 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 意味着它试图运行它不认识的命令。有人知道如何修复这个问题吗?

答案1

所以我今天尝试做同样的事情,意识到他们网站上的 Debian 构建以及从源代码编译的说明对于 Kali Linux 2017.1 来说都是不够的。

从源代码构建他们的指示导致出现类似以下错误,这可能是由于 Synergy 所需的 OpenSSL 版本不同:

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 分支中修复(来自他们于 2017 年 5 月 15 日的回复)。

事实证明他们的稳定版本仍然是 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

然后使用 Alt-F2 重新启动 GNOME 并输入r。您应该能够在启动器中找到 Synergy(带有来自 v1.9 的新图标)。


编辑:更新了 GitHub repo 的 URL无对称/协同symless/synergy-core

答案2

这里的关键是程序无法找到 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

相关内容