Qtcreatorの.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-data
qtcreatorはシェルの変数$ PATHにありません。しかし、私はまだgnomeunityでQtCreatorを起動できます。
freedesktop-exec-variables から気づいた
フルパスが指定されていない場合、実行可能ファイルはデスクトップ環境で使用される$ PATH環境変数で検索されます。
デスクトップ環境の$ PATH環境変数は、シェルとは異なりますか?
もしそうなら、デスクトップ環境の$ PATH変数を含む設定ファイルはどこにありますか?
新しいバージョンのQtCreatorをインストールしてから、デスクトップでQtCreatorを起動すると、qtcreator:qtcreator.desktop
ファイルを変更せずに新しいバージョンを参照していることがわかります。 qtの道には何かあると思いますか?
デスクトップ環境:gnome
OS:ubuntu16.04
編集
私が遭遇した実際の問題は$ PATHに関するものではありませんでした(私の答えを参照してください)。 Gillesの答えは、実際には「デスクトップ環境の$ PATH環境変数はシェルの環境変数とは異なりますか?」に対する答えです。だから、誰かが私と同じ疑いを持っている場合に備えて、私はそれを受け入れました。
デスクトップ環境の$ PATH環境変数は、シェルとは異なりますか?
そうかも知れない。
プログラムがファイルから環境変数を読み取るために邪魔にならない限り、プログラムの環境はファイルから取得されません。各プロセスは、その親の環境を継承します。ファイルから環境変数を読み取ることは、ログイン時に実行するプログラム(テキストモードでログインするときのシェル、セッションマネージャー、またはグラフィカル環境でログインするときにそのように動作するプログラム)のジョブの一部です。したがって、通常、デスクトップ環境を使用してターミナルでシェルを開くと、そのシェルの環境はデスクトップ環境と同じになります。
ただし、実際にはそうではない場合があります。これは、環境変数の定義を.bashrc
に入れるように人々に指示するアドバイスがWeb上にたくさんあるためです。 これは悪い考えです これらの環境変数は、ターミナルから開始するのではなく、GUIから直接開始するプログラムでは使用できないことを意味します。しかし、それを行った場合、デスクトップ環境や端末から起動されていないプログラムとは異なる環境変数が端末にあることに気付くかもしれません。
環境変数の定義を~/.profile
に入れることは、ほとんどのシステムで機能します。 Waylandをアクティブにしない限り、Ubuntu 16.04のGnomeで機能すると思います(ログイン設定を含む多くの問題が発生し、常に回復する方法が提供されるとは限りません)。
いずれにせよ、環境変数を間違った場所に置くことの通常の症状は、環境変数が端末には存在するが、デスクトップ環境には存在しないことです。逆にするには、シェルの起動ファイルに何か異常なものが含まれている必要があります。
qtcreatorは、シェルの変数$ PATHにありません。
それがインストールされている場合、私はそれを非常に疑っています。 Ubuntuは、ほとんどのプログラムが配置されている/usr/bin
にqtcreator
を出荷します。
ただし、$PATH
は.desktop
ファイルの場所とは関係がないことに注意してください。 $PATH
はアプリケーションプログラム用であり、.desktop
ファイル用ではありません。 qtcreator
の.desktop
ファイルを探していて、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
を追加します。
$XDG_DATA_DIRS
ファイルの検索パスは*.desktop
だけではないことがわかりました。そのため、間違ったQtCreatorデスクトップエントリファイルを見つけました。
XDGベースディレクトリ仕様 を参照してください
ユーザー固有のデータファイルを書き込むための相対的な単一のベースディレクトリがあります。このディレクトリは、環境変数$ XDG_DATA_HOMEによって定義されます。
$ XDG_DATA_HOMEは、ユーザー固有のデータファイルを保存する必要があるベースディレクトリを定義します。 $ XDG_DATA_HOMEが設定されていないか空の場合は、デフォルトで$ HOME/.local/shareを使用する必要があります。
$ XDG_DATA_DIRSは、データファイルを検索するための優先順位の付いたベースディレクトリのセットを定義します$ 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
にコピーするアクションはそこに文書化されています。