デスクトップ環境の$ PATH環境変数とシェルの環境変数に違いはありますか?

デスクトップ環境の$ PATH環境変数とシェルの環境変数に違いはありますか?

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.desktopQtCreatorのデスクトップアイテムであると思って開き、次のことを見つけました。

[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にありません。。しかし、まだgnome UnityでQtCreatorを起動できます。

~からfreedesktop-exec-変数私は気づいた

フルパスが指定されていない場合は、デスクトップ環境で使用されている$ PATH環境変数で実行可能ファイルを見つけます。

質問

デスクトップ環境の$ PATH環境変数がシェルの環境変数と異なりますか?

それでは、デスクトップ環境の$ PATH変数を含む構成ファイルはどこにありますか?

最新バージョンのQtCreatorをインストールした後、デスクトップでQtCreatorを実行しましたが、ファイルを変更せずに最新バージョンを参照することがわかりましたqtcreator:qtcreator.desktop。 Qtのパスに問題があるようですが?

デスクトップ環境:GNOME

オペレーティングシステム:ubuntu16.04

編集する

私が経験している実際の問題は$ PATHとは関係ありません(私の答えを参照)。 Gillesの答えは、実際には、「デスクトップ環境の$ PATH環境変数がシェルの環境変数と異なるのですか?」に対する答えです。それで私と同じ質問をする方がいらっしゃるかと受け入れました。

ベストアンサー1

デスクトップ環境の$ PATH環境変数がシェルの環境変数と異なりますか?

おそらくそうです。

プログラムが特にファイルから環境変数を読み取らない限り、プログラムの環境はファイルからインポートされません。各プロセスは親プロセスの環境を継承します。ファイルから環境変数を読み取ることは、ログイン時に実行されるプログラム(テキストモードでログインするときのシェル、セッションマネージャ、またはグラフィック環境にログインするときなどの動作プログラム)操作の一部です。したがって、通常、デスクトップ環境を使用して端末でシェルを開くと、そのシェルはデスクトップ環境と同じ環境を持ちます。

しかし実際にはそうではないかもしれません。オンラインでは、環境変数の定義を.bashrcこれは悪い考えです。これは、端末ではなくGUIで直接実行されるプログラムでは、これらの環境変数を使用できないことを意味するためです。ただし、これを行うと、端末の環境変数がデスクトップ環境や端末で実行されていないプログラムの環境変数と異なることがわかります。

環境変数定義を入力すると、~/.profileほとんどのシステムで機能します。 Waylandを有効にしない限り、Ubuntu 16.04のGnomeで動作すると思います(ログイン設定を含む多くの項目が破損し、常に回復方法を提供するわけではありません)。

それにもかかわらず、環境変数を間違った場所に配置する一般的な症状は、環境変数が端末にはあるがデスクトップ環境にはないことです。逆の場合は、シェルの起動ファイルに何か奇妙なことがあります。

qtcreatorはシェルの変数$ PATHにはありません。

インストールされているかどうか疑問です。 Ubuntuがリリースされるqtcreator/usr/bin、ほとんどのプログラムがある場所です。

ただし、これは$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

おすすめ記事