distrobox-export --app emacs
没有按预期工作。它抛出输出:
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option Error: cannot find any desktop files. Error: trying to export a non-installed application.
尝试通过仅设置/usr/share/applications
它正常工作的文件夹来调试它。因此,该错误可能存在于查找安装的查询之一中emacs
。
xargs -t -I{} grep -le Exec=.*emacs.* -le Name=.*emacs.* {}
xargs -t -I{} grep -Le Exec=.*/home/deck/.local/bin/distrobox-enter.* {}
xargs -t -I{} printf %s@ {}
重现
安装 emacs (ubuntu:latest)
:
sudo apt-get install emacs
并导出它:
distrobox-export --app emacs
预期行为 Emacs 导出到我的本地用户。
日志
(我添加了-t
详细标签来xargs
扩展 grep 命令)
桌面(请填写以下信息):
- 您使用的是 podman、docker 还是 lilipod?:
podman
- podman、docker 或 lilipod 是哪个版本? :
podman version 4.5.1
- 哪个版本的发行版?:
distrobox: 1.6.0.1
- 哪个主机分布?:
SteamOS 3.5
- 你是如何安装distrobox的?:
curl + prefix=.local/
额外的背景信息
上下文:我之前创建了一个debian
容器并导出了另一个应用程序:VScode
。我已经删除了容器(而不是先删除应用程序) - 并且发行版要求我--force
删除容器debian
。这是导致此行为发生的唯一关联原因。
- 我已经删除了之前设置的任何快捷方式
~/.local/share/applications
,搜索了任何指向code.desktop
. - 调试了该
export
程序,它似乎在某个目录中丢失了。 - 尝试重新安装每个应用程序:
distrobox
并且podman
- 没有成功 - 删除了
/etc/containers
文件夹并重新下载注册表 - 没有成功 - 我还编辑了用于搜索应用程序的目录,并仅手动设置为
/usr/share/applications
它可以正常工作。所以我的主要想法是,在搜索过程中,它发现一个损坏的快捷方式,该快捷方式返回一个损坏的坏字符串xargs
- 可能是被删除的容器生成的坏链接。 - 我已删除所有容器
podman
并重新开始。所以可能是我的计算机上的某种状态导致了这种情况 - 还尝试搜索任何可能以错误格式创建的文件
emacs.desktop
或任何正则表达式,但没有找到任何文件或正则表达式。emacs
如何进一步调试它以找出它在哪里生成格式错误的字符串xargs
?
- - 解决方案 - - 此问题可以关闭,但是请保持打开状态,因为其他用户也可能遇到此问题
调试它我发现(现在很明显)我有一个~/.local/share/applications
名称中带有单引号的游戏:"No Man's Sky"
它逃脱了xargs
并distrobox-export
抛出了一个错误No file existed
。因此,要解决此问题,您可以重命名快捷方式或将其全部删除。
我在 distrobox 上打开了一个问题我可能会为此添加适当的文件名处理,以便此错误不再发生。