我正试图为so创建者找到.desktop文件,所以我写了以下内容:
$ for p in ${XDG_DATA_DIRS//:/ }; do
grep -rni 'qtcreator' $p;
done以下是最相关的台词:
/usr/share/app-install/desktop/qtcreator-plugin-ubuntu:ubuntusdk.desktop:2:X-AppInstall-Package=qtcreator-plugin-ubuntu
/usr/share/app-install/desktop/qtcreator-plugin-ubuntu:ubuntusdk.desktop:6:Exec=qtcreator %F
/usr/share/app-install/desktop/qtcreator-plugin-ubuntu:ubuntusdk.desktop:7:Icon=ubuntu-qtcreator
/usr/share/app-install/desktop/qtcreator:qtcreator.desktop:2:X-AppInstall-Package=qtcreator
/usr/share/app-install/desktop/qtcreator:qtcreator.desktop:6:Exec=qtcreator %F
/usr/share/app-install/desktop/qtcreator:qtcreator.desktop:7:Icon=QtProject-qtcreator
/usr/share/app-install/desktop/qhimdtransfer:qhimdtransfer.desktop:12:#Icon=qtcreator_logo_32我认为qtcreator:qtcreator.desktop是QtCreator的桌面条目,所以我打开它并找出:
[Desktop Entry]
X-AppInstall-Package=qtcreator
X-AppInstall-Popcon=292
X-AppInstall-Section=universe
Exec=qtcreator %F
Icon=QtProject-qtcreator
Type=Application
Terminal=false
Name=Qt Creator
GenericName=Integrated Development Environment
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.nokia.qt.qmakeprofile;application/vnd.nokia.xml.qt.resource;
Categories=Qt;Development;IDE;
InitialPreference=9
X-Ubuntu-Gettext-Domain=app-install-dataqtcreator不在shell的变量$PATH中。但是我仍然可以以gnome的方式发布QtCreator。
从freedesktop-exec-变量上我注意到
如果没有提供完整路径,则在桌面环境使用的$PATH环境变量中查找可执行文件。
桌面环境的$PATH环境变量与shell环境不同吗?
如果是,包含桌面环境的$PATH变量的配置文件在哪里?
我安装了一个较新版本的QtCreator,然后在桌面上启动QtCreator,并在不更改qtcreator:qtcreator.desktop文件的情况下找到它对较新版本的引用。我认为qt的道路有什么关系吗?
桌面环境: gnome
操作系统: ubuntu16.04
<#>编辑
我遇到的实际问题不是关于$PATH(见我的答案打击)。吉尔斯的答案实际上是“桌面环境中的$PATH环境变量与shell中的环境变量不同吗?”所以我接受了,以防有人和我有同样的疑问。
发布于 2018-07-01 08:14:13
桌面环境的$PATH环境变量与shell环境不同吗?
也许是吧。
程序的环境不是来自一个文件,除非程序用自己的方式从文件中读取环境变量。每个进程继承其父进程的环境。从文件中读取环境变量是登录时运行的程序(登录文本模式时的shell、会话管理器或在登录图形环境时充当此角色的程序)的一部分。因此,通常情况下,如果您使用桌面环境并在终端中打开一个shell,该shell将具有与桌面环境相同的环境。
然而,在实践中,情况可能并非如此,因为网络上有大量的建议告诉人们在.bashrc中放置环境变量定义。馊主意,因为这意味着这些环境变量不适用于直接从GUI启动的程序,而不是从终端启动的程序。但是如果您这样做了,您可能会发现,与桌面环境和非从终端启动的程序相比,终端中有不同的环境变量。
将环境变量定义放入~/.profile中可以在大多数系统上工作。我认为它适用于Ubuntu16.04上的Gnome,只要你不激活Wayland (它破坏了很多东西,包括登录设置,而且并不总是提供恢复的方法)。
在任何情况下,将环境变量放置在错误位置的常见症状是,环境变量存在于终端中,但在桌面环境中缺失。相反,您的shell启动文件中必须有一些不寻常的内容。
is创建者不在shell的变量$PATH中。
我很怀疑它是否安装好了。Ubuntu在/usr/bin中提供D8,这是大多数程序所处的位置。
但是请注意,$PATH与.desktop文件的位置无关。$PATH用于应用程序,而不是.desktop文件。如果您正在寻找用于.desktop的qtcreator文件,并且安装了qtcreator包,则只需使用搜索文件:
$ locate qtcreator.desktop
/usr/share/applications/qtcreator.desktop/usr/share/applications是.desktop文件的标准位置。
如果您在Ubuntu中安装了自己版本的QtCreator,那么您应该确保qtcreator位于命令搜索路径中,即$PATH。如果您在系统范围内安装了它,您应该可以将它作为/usr/local/bin/qtcreator使用,它位于/usr/bin之前的命令搜索路径上,因此您将优先获得您的版本。如果您将它安装在您的帐户上,请创建一个符号链接,从qtcreator可执行文件到~/bin/qtcreator,即到主目录下的bin目录(如果这个目录不存在,就创建它)。Ubuntu的默认.profile将~/bin添加到$PATH前面。
发布于 2018-07-01 07:11:22
事实证明,$XDG_DATA_DIRS不是*.desktop文件的唯一搜索路径。所以我找到了错误的QtCreator桌面条目文件。
应该写入特定于用户的数据文件,其中有一个单独的基本目录。此目录由环境变量$XDG_DATA_HOME定义。$XDG_DATA_HOME定义了应该存储用户特定数据文件的基本目录。如果$XDG_DATA_HOME未设置或为空,则应使用等于$HOME/..local/share的默认设置。$XDG_DATA_DIRS定义了按优先顺序排列的基本目录集,以搜索数据文件,in添加到$XDG_DATA_HOME基本目录中。$XDG_DATA_DIRS中的目录应该用冒号“:”分隔。
我找到了真正的QtCreator桌面条目文件~/.local/share/application/DigiaQt-qtcreator-community.desktop。
Exec行是Exec=/home/user/Qt/Tools/QtCreator/bin/qtcreator,所以问题不在于$PATH。
我从源代码中安装了QtCreator的旧版本和更新版本。Qt目录下有一个InstallationLog.txt。这里记录了将桌面文件复制到~/.local/share的操作。
https://unix.stackexchange.com/questions/452842
复制相似问题