gpt4 book ai didi

linux - 找到新安装的应用程序的可执行文件 "Beyond Compare"

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:47 26 4
gpt4 key购买 nike

一些源代码控制查看器允许用户选择非默认应用程序来解决 merge 期间的冲突。为此,我需要指定所需工具的位置,因此我从 Ubuntu Software 安装了 Beyond Compare。但是我找不到它的安装基础文件夹。

试图通过使用 ps -ef 检查正在运行的“Beyond Compare”实例的属性来解决这个问题。事实上,其中一个正在运行的进程是从文件中产生的/snap/bcompare/90/usr/bin/bcompare 来自类型 bash 脚本。

我假设这是在应用程序列表中双击 Beyond Compare 图标时调用的文件。

我打开文件看到它指向$SNAP/usr/lib/beyondcompare/Bcompare 但我找不到$SNAP 的设置。

所以我在后缀(“/usr/lib/beyondcompare..”)中搜索应用程序名称,但一无所获。

最终我在 /snap/bin/bcompare 中找到了丢失的可执行链接,

zohark@ubuntu:/snap/bin$ ls -ltr /snap/bin/bcompare 
lrwxrwxrwx 1 root root 13 Nov 14 00:21 /snap/bin/bcompare -> /usr/bin/snap

当我直接运行它时,我无法比较,但是如果我运行链接文件 /usr/bin/snap 我会得到 snap 工具。

我的问题是

  1. 为什么安装程序选择此工具的 /usr/share/application 之外的位置?

  2. 我在哪里可以看到双击应用程序到运行阶段的流程?它在哪里设置一些环境变量,例如 $SNAP?。

谢谢

最佳答案

  1. 从 16.04 版开始,除了现有的来自 Debian 的 deb/apt 之外,Canonical 决定将他们自己的包管理系统 snap 引入 Ubuntu。它主要用于非自由(非开源,即专有)软件,例如 Beyond Compare,以及其他从未添加到 Ubuntu deb* 存储库的软件。

我预计他们决定将 snap install 包安装到默认位置以外的其他地方,因为它有助于防止某些类型的冲突,这些冲突可能是由同一目录中不同包管理系统管理的文件共存引起的。


  1. 应用程序图标实际上对应于.desktop 文件。这些文件通常放置在文件管理器和桌面环境能够找到它们的专用文件夹中。我知道的文件夹如下:

    • /usr/share/applications
    • /var/lib/snapd/desktop
    • ~/.local/share/applications
    • /etc/xdg/autostart/

下面的命令应该能够找到您系统上的所有 .desktop 文件。

find /opt /snap /usr ~ /etc /lib* /srv /var /sbin /bin -name '*.desktop' 2>/dev/null

.desktop 文件如下所示:

$ cat /usr/share/applications/filezilla.desktop
[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= 条目通常是绝对路径,因此您知道要执行的文件的实际位置。 Visual Studio Code 就是这种情况:

$ cat /usr/share/applications/code.desktop 
[Desktop Entry]
Name=Visual Studio Code
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/share/code/code --unity-launch %F
Icon=code
Type=Application
StartupNotify=true
StartupWMClass=Code
Categories=Utility;TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;
Actions=new-empty-window;
Keywords=vscode;

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/share/code/code --new-window %F
Icon=code

如果您想知道变量 $SNAP 的值,我希望您能做的最好的事情就是修改脚本并在顶部包含如下一行。

echo 'SNAP='"$SNAP" > /tmp/SNAP_VALUE

然后运行应用程序并检查文件 /tmp/SNAP_VALUE,使用 gedit 或从终端:

more /tmp/SNAP_VALUE

关于linux - 找到新安装的应用程序的可执行文件 "Beyond Compare",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53299702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com