[Experience sharing] 关于UOSv20玲珑应用多开失败的一个解决方案
Tofloor
poster avatar
MeGusta
deepin
2025-05-29 20:23
Author

得益于玲珑开发者的辛勤工作,现在 UOSv20 1070也可以使用最新版的 linglong 1.8.2,这样实现了deepin与UOS的玲珑软件包的通用,非常丝滑。

唯一存在的难题是,我日常工作使用的QGIS,在deepin下可以多开,但是在UOS下却一次只能打开一个窗口。通过在终端里面的调试,我得到的报错如下:

nsenter: unrecognized option '--wdns=/'
Try 'nsenter --help' for more information.

大概看来,是玲珑组件向 nsenter传递了一组不能识别的参数 --wdns=/

经过搜索,在旧版的deepin23上也出现过同样的情况,但是没有说后来是如何解决的:【deepin_V23_Release】【一般】【正常】【内测反馈】

由于当时这个问题不知道如何解决,而且对工作影响比较大,所以只能无奈放弃UOS,改用deepin23/25了。

后来在玲珑群闲聊的时候,统信的工作人员指出,这是由于UOS自带的 nsenter版本太低,不支持 --wd 选项,而且貌似短时间内,UOS官方不太会更新包含这个工具的 util-linux包。

问了下 chatgptnsenter工具是可以单独编译的,而且也不复杂,于是干脆尝试编译新版,来替换旧版试试。

后来竟然成功了,具体过程总结如下。

为了避免未知的后果,请备份原始文件!!!

1.打开开发者模式,重启后,在安全中心-应用安全-允许任意应用。

image.png

2.安装必须的组件:

sudo apt install flex bison

3.下载的util-linux源码包,这里参照deepin25预装的版本:2.40.4

wget https://github.com/util-linux/util-linux/archive/refs/tags/v2.40.4.zip

或者直接下载附件:util-linux-v2.40.4.zip

4.解压,在项目文件夹内打开终端,执行命令:

./autogen.sh

运行的末尾会有一个关于sqlite3的错误提示,不必惊慌,这与我们要编译的nsenter无关:

configure: error: liblastlog2 selected, but required sqlite3 library not available

5.设置仅编译 nsenter,并开始编译:

./configure --disable-all-programs --enable-nsenter && make

6.在当前目录得到编译产物 nsenter,查看版本号,截图为 UOS v20 1070 arm64

chmod 755 ./nsenter
./nsenter --version
# nsenter from util-linux 2.40.4

image.png

7.备份原始文件,并复制新版本程序,截图为 UOS v20 1070 arm64

sudo cp /usr/bin/nsenter /usr/bin/nsenter.2.33
sudo cp ./nsenter /usr/bin/nsenter.2.40.4
sudo cp ./nsenter /usr/bin/nsenter
sudo chown root:root /usr/bin/nsenter && sudo chmod 755 /usr/bin/nsenter

image.png

8.测试是否替换成功,并测试需要多开的应用:

nsenter --version
# nsenter from util-linux 2.40.4

效果如下:

image.png

Reply Favorite View the author
All Replies
‌量子巡游者
deepin
Resources Team Moderator
2025-05-30 09:16
#1

这个方法不错,建议官方采纳后在设置中增加个软件多开开关,或者在菜单栏右键软件中增加多开模式!

Reply View the author
MeGusta
deepin
2025-05-30 10:03
#2
‌量子巡游者

这个方法不错,建议官方采纳后在设置中增加个软件多开开关,或者在菜单栏右键软件中增加多开模式!

这是一个由于UOSv20的 util-linux组件版本过低,没有与 玲珑组件配套更新产生的问题。

Reply View the author