web-dev-qa-db-ja.com

GNOMEディスプレイマネージャーが常に.profileを読み取るのはなぜですか?

最近、ターミナルプロンプトログイン(getty?)からGNOME DisplayManagerに切り替えました。 そうです ユーザーのログインシェル(私の場合はZsh)の設定に関係なく、GDMは常に.profileを読み取ります。何故ですか? ソース にハードコードされていると思いますが、見つかりません。なぜ彼らはそれをしたのですか?ソフトウェアはBourneシェルの一部の機能に依存していますか?

GDMとgettyの両方を(フォールバックとして)使用する場合、これはあまり良くありません。.profile.zprofileの同期を維持する必要があるためです。 .profile.zprofileを調達することに自信がありません(以前、.bashrc.zshrcを調達しようとしたときに、いくつかの互換性の問題が発生しました)。 /bin/shと呼ばれるBashはPOSIXモードで動作すると思いますが、すべての落とし穴を回避できるかどうかはわかりません。

重要な場合は、私は最新のArch Linuxを使用しており、WaylandでGNOMEを実行しています(したがって、Xsessionスクリプトは必要ありません)。

3
Franklin Yu

.bashrcに関する問題は無関係です。 .profileはすべてのsh互換シェルと互換性がある必要がありますが、もちろん.bashrcはBashに固有であり、通常は他のシェルから供給されるべきではありません。

一般に、シェル間で共有したいものを.profileに入れ、他のスタートアップファイルからdoソースを作成するようにしますシェル(もちろん、デフォルトですでにそれを行っている場合を除く)。

明らかに、異なるシェルで異なる動作をするコードを避けるようにする必要があります(たとえば、Zshでは引用符の欠如は問題ありませんが、適切にBourne互換のシェルでは問題があります)。

質問の「理由」の部分については、これは、シェル内から実行するプログラムだけでなく、GUIセッションから実行するプログラムでも.profileの設定を利用できるようにするためです(または、そうする必要があります)。 「従来の」シェルと言い、GUIセッションを「非従来の」シェルと見なします)。

5
tripleee