我最近在 Kubuntu 22.10 上使用 Nix 安装了 Filezilla 和 Keepass 并将我的符号链接~/.nix-profile/share/applications
到/usr/share/applications
,以便这些应用程序出现在应用程序菜单中。
当我尝试从应用程序菜单运行这些应用程序之一时,出现错误“无法找到该程序(filezilla)”,因此我检查了.desktop
创建的文件nix-env
并意识到它们已损坏:
[Desktop Entry]
Name=FileZilla
GenericName=FTP client
GenericName[da]=FTP-klient
GenericName[de]=FTP-Client
GenericName[fr]=Client FTP
Comment=Download and upload files via FTP, FTPS and SFTP
Comment[da]=Download og upload filer via FTP, FTPS og SFTP
Comment[de]=Dateien über FTP, FTPS und SFTP übertragen
Comment[fr]=Transférer des fichiers via FTP, FTPS et SFTP
Exec=filezilla
Terminal=false
Icon=filezilla
Type=Application
Categories=Network;FileTransfer;
Version=1.0
“Exec”行显然不起作用,因为nix-env
没有创建 filezilla bash 别名 - 在终端中输入“filezilla”不会执行任何操作。
另一方面,由于某种奇怪的原因,该brave-browser
.desktop
文件工作正常 - Exec 行正是您所期望的:
Exec=/nix/store/p432kx8jkqad2xiarjj08xp20a16n8lx-brave-1.49.120/bin/brave
更新: ls -l 的输出是:
lrwxrwxrwx 1 root root 99 dez 31 1969 brave-browser.desktop -> /nix/store/p432kx8jkqad2xiarjj08xp20a16n8lx-brave-1.49.120/share/applications/brave-browser.desktop
lrwxrwxrwx 1 root root 97 dez 31 1969 filezilla.desktop -> /nix/store/wrv7nr1208cy4yx9sizmqcjg2r5r46f7-filezilla-3.63.1/share/applications/filezilla.desktop
lrwxrwxrwx 1 root root 93 dez 31 1969 keepass.desktop -> /nix/store/4brbbmi0swymm7987yd8l56yf1pgdvi2-keepass-2.53.1/share/applications/keepass.desktop
这很有趣,因为这意味着这些.desktop
文件应该链接到正确的.desktop
文件,但 KDE 没有按预期解释它们。