系统:Kubuntu 20.04 LTS
长话短说,我做了以下事情:
apt remove --purge kdevelop
find /usr/ -type f -name "*kdev*.so*"
rm -rf /usr/lib/x86_64-linux-gnu/libblockdev.so.2.0.0
apt remove --purge kwrite
find /usr/ -type f -name "*kwrite*.so*"
rm -rf /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kded/kwrited.so
apt autoremove
apt install kwrite
apt install kdevelop
现在有些事情不再起作用了;有些程序需要 5 分钟才能启动,有些则根本不启动。
这些文件没有安装,我认为这是问题所在。
/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kded/kwrited.so
/usr/lib/x86_64-linux-gnu/libblockdev.so.2.0.0
一种可能的解决方案是重新安装 KDE Plasma 桌面,但我不想丢失我的设置(颜色、图标、动画、功能......),我已经为此工作了 1 个月,但我仍然没有完毕。
如何在不丢失桌面设置的情况下解决此问题?
如果你想知道我为什么这样做,这里是完整版:我在Kate和KDevelop中缺少一个函数,即在侧边栏中打开文件夹的加号。库本图使用 Kate 的 19... 版本,但已经有 21... 版本可用,并且在 21 版本中存在加号。Kate 没有 repo,只有 Ubuntu reopsetory,所以我不得不下载 appimage。在我启动 Kate 应用程序图像后,我必须等待大约 30 秒才能单击文件夹直到它打开。我认为这是因为 Kate V.19... 使用 apt remove --purge kate 安装和卸载了 Kate V.19。但一切都没有改变。然后我记得 Kdevelop 也已安装并且它也适用于 Kate,所以我也卸载了 KDevelop(apt remove --purge kdevelop)。但这也无济于事,所以我用 apt autoremove 清理了系统并搜索了 Kate 文件并删除了它们。系统重启后它开始了。KDE Plasma 桌面需要 5 分钟才能启动。Dolphin File Exlorer需要 5 分钟才能启动,并且无法访问其他分区和驱动器。GNOME 磁盘工具根本不启动,等等。
这个问题的解决方法是恢复手动删除的系统文件
使用Ubuntu Packages Search找出删除的文件属于包
libblockdev2
和kwrited
.只需重新安装这些软件包:
请允许我回答您隐含的问题 - 与您在存储库中拥有的软件相比,如何获得更新版本的软件以及在此过程中会发生什么。在您的特定情况下,您想要更新的是 Kate,但通常这适用于任何软件。
来自“多平台包管理器”的所有应用程序(nix、flatpak、appImage、snap、homebrew等等)都注定要启动更长的时间、不那么快速、占用更多的 RAM 和磁盘空间。你不能欺骗物理定律。
发生这种情况是因为此类应用程序不依赖于您已经安装到系统中的共享库。您现有的一组共享库是由其他应用程序带来的,并且很可能这些库已经由您在会话中运行的其他应用程序加载到 RAM 中。
appimage-ish 应用程序所做的是,它们会安装所需的任何库/依赖项,并在您启动此类应用程序时将它们加载到内存中。它需要额外的 RAM 和 CPU 时间来加载所有这些依赖项,这些依赖项仅由单个 appimage 应用程序使用。
如果您在具有快速 CPU、大量 RAM 和 SSD 而不是 HDD 的体面硬件上运行操作系统,您甚至可能不会注意到这种性能下降,但如果不是这种情况,您会用肉眼看到差异。
我看到一些 youtuber 炫耀在某些浏览器的综合测试中性能下降仅为 5-10%,但他忘了提到在他的硬件上下降了 5-10%,这是相当下降的。对你的具体硬件数字会完全不同。所以不要被欺骗,不要被愚弄。
当然,您选择的应用程序的特定 appimage 版本可能存在错误,并且正在消耗 CPU 周期或浪费内存。一个合适的解决方案是“分析”应用程序以查看时间花费在哪里并将所有这些错误报告给开发人员,以便他们可以修复它。但这需要大量复杂的技能和时间。
更实用的解决方案是尝试该应用程序的 N-1 或 N+1 appimage 版本,或者从不同的 repo(如 flatpack 或 nix)中尝试。
当然,最后的选择。是为您想要的应用程序下载最新版本的源代码(假设它在您的 Linux 发行版的存储库中丢失)并尝试自己编译它。这是大多数用户会发现的地方,他们尝试编译的新版本的应用程序取决于他们也无法从 repo 获得的某些 lib 的新版本 - 所以他们也需要编译它。该库可能需要另一个库,另一个库......并且他们中的大多数人会放弃自己编译它的尝试:)但您仍然可以尝试一下。如果您成功了,该应用程序将拥有您想要的所有最新功能,并将尽可能多地使用您现有的共享库。Archlinux 用户将很乐意分享他们使用“AUR”的经验。或者带有“emerge”的Gentoo用户。
抱歉,读了很久,但我希望这会清除一些事情。