我已经将 Fedora 从 28 升级到最新的 29,Slack 不再工作了。它返回一个Segmentation fault (core dumped)
.
编辑:该问题已在 Slack 3.3.4 上得到修复
我得到valgrind
了这个输出:
Process terminating with default action of signal 11 (SIGSEGV): dumping core
Bad permissions for mapped region at address 0xDBF060
at 0xDBF060: ??? (in /usr/lib/slack/slack)
by 0x7112071: node::http2::Http2Session::Callbacks::Callbacks(bool) (in /usr/lib/slack/libnode.so)
by 0x7112134: ??? (in /usr/lib/slack/libnode.so)
by 0x5853CE9: call_init.part.0 (in /usr/lib64/ld-2.28.so)
by 0x5853DE9: _dl_init (in /usr/lib64/ld-2.28.so)
by 0x5845149: ??? (in /usr/lib64/ld-2.28.so)
似乎问题出在“过时”版本的libnode.so
. libnode.so
我刚刚从最新atom.rpm
安装中复制了另一个版本:
sudo mv /usr/lib/slack/libnode.so /usr/lib/slack/libnode.so.old
sudo ln -s /usr/share/atom/libnode.so /usr/lib/slack/libnode.so
编辑
就像用户Pierre Bellan已经说过的那样,您可以轻松地libnode.so
在您的操作系统上找到其他版本:
sudo updatedb && locate libnode
我使用 atom one 是因为我确信编辑器最近的工作更新。
正如@Flat 所指出的,包含的 libnode.so 不适用于 fedora 29。
从http://atom.io下载最新的 atom.rpm (我以前从未听说过...)
安装它,将坏库移开并符号链接新的库:
sudo dnf install ~/Downloads/atom.x86_64.rpm
sudo mv /usr/lib/slack/libnode.so /usr/lib/slack/libnode.so.bad
sudo ln -s /usr/share/atom/libnode.so /usr/lib/slack/libnode.so
可能有更好的或官方的 libnode.so 来源;但是我快速查找,我没有看到一个,并且它没有安装在我系统上的其他任何地方。
这个问题在 Arch linux 更新到 glibc 2.28 时首次被报告。Fedora 29 和 Ubuntu 18.10 用户在许多 Electron 应用程序中都遇到了这个错误。Slack 的 Snap 包在这些版本的发行版上运行良好。可以将 glibc 版本降级到 2.27 的用户不会出现段错误。
11 月 7 日,在 Electron 问题中添加了一条新评论 - 仅供参考,关于切换 libnode。如果你这样做了,你可能想在 Slack 发布修复程序时将其切换回来。
对于从其他地方替换 libnode.so(并让应用程序再次运行)但仍然偶尔崩溃的 Slack 用户,请暂时禁用您的通知声音。似乎如果 Slack 尝试播放新消息的通知声音,它只是重新启动,而不是到处播放剪辑。
Thx @Flat 最初的问题和答案;),我真的需要在应用程序上松弛而不是基于 Web 的版本
在安装不需要的东西之前,请检查目录是否该 lib 尚未从另一个软件中存在。
例如,我也在 vscode 上找到了一个可以工作的 libnode.so 版本
sudo updatedb && locate libnode