電子書籍の厳選無料作品が豊富!

Windowsで言えば『システムのプロパティ→環境変数』で環境変数を設定するのが標準的かと思いますが、Macの場合はどこで設定するのが標準的な方法ですか?
ネットで検索すると.bashrcに設定しろとか、なんかソフトを導入しろってのがヒットしますが、どれが標準的な方法なのかわかりません。
Macって初期はzshが標準シェルっぽいので.zprofileに設定すべきなのでしょうか?

特に環境変数をGUIアプリケーション上で有効にしたい場合の標準的な方法をご教示いただければと思います。

質問者からの補足コメント

  • 回答ありがとうございます。
    ただ、知りたいのはbashやzshの環境変数の設定方法ではなく、Macでの標準的な方法です。

    .bashrcや.zshrcに環境変数を定義する方法だと、起動後に一度でもターミナルを開かないと環境変数がセットされない様に思います。(OS起動後にGUIアプリを起動する等した場合)
    なので、Windowsのようななにか標準的な方法があるのかなというのが質問の主旨です。

    よろしくお願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/04/27 16:55

A 回答 (6件)

macOSだとlaunchdがサービスプロセスを司っていて、システムワイドな設定もLaunch Daemons/Agentsに対して設定するのが標準的なやり方です。


launchctlで指定したり、当該サービスのplistに保存したりとか。

ただ、セキュリティの観点からプロセス権限の分離を進めた結果、どれか一つだけ設定すれば全てのプロセスに反映される構成になってないケースもあったような。
    • good
    • 0
この回答へのお礼

なるほど!解決です!
回答いただいた内容が大きなヒントになりました。
下記ファイルを作成することで、ログイン時に環境変数がセットされました。

$cat ~/Library/LaunchAgents/localhost.setenv.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>localhost.setenv</string>
<key>ProgramArguments</key>
<array>
<string>/bin/launchctl</string>
<string>setenv</string>
<string>変数のキー</string>
<string>変数の値</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

<array>の中でとりあえず環境変数の設定を直書きしてますが、ここをシェルスクリプトとかにすれば汎用的にできるかもしれません。

なにはともあれ助かりました。
ありがとうございます。

お礼日時:2021/04/28 00:56

>GUIアプリケーション上で有効にしたい場合も



GUIで行った場合はそのアプリが独自の設定ファイルを持ってるのでそのファイルに書き込まれることが殆どです
No.2さんが「アプリ内にパスを通すための設定ファイルが存在します」と回答されてます。ちゃんと読まれましたか?

上から目線も何も丁寧に説明してくれる方に対してあなたが上から目線なのではないですか?
    • good
    • 0

>Macの場合はどこで設定するのが標準的な方法ですか?



WindowsのようなGUIではなくUnixやLinuxはターミナルが標準的ですです
    • good
    • 0
この回答へのお礼

回答有り難うございます。

ということは、GUIアプリケーション上で有効にしたい場合も、.bashrcなり.zshrcなりに書いておいて、一旦ターミナルを起動するという方法しか無いってことですか?

お礼日時:2021/04/27 20:18

あなたが何をやりたいのかさっぱり解りません


PATHを通したいと思ってました
PATHを通す必要が無いのでしたら環境変数云々なんとどうでもいいことです

>私の手元の環境がおかしいのでしょうか?

はい、その通りだと思います
    • good
    • 0

ターミナルで行うのが標準です



あのですね、なぜPATHを通す必要があるのか考えてくださいね
PATHが必要になってくるものはそもそもターミナルが必要になります
ですのでターミナルで行ってください
GUIでインストールしたアプリにPATHを通す必要はありません
もしPATHを通す必要があるようなアプリの場合にはそのアプリ内にパスを通すための設定ファイルが存在します

>、起動後に一度でもターミナルを開かないと環境変数がセットされない様に思います。

それは間違った知識です
ログイン時に1回実行されます
    • good
    • 0
この回答へのお礼

あのですね、PATHを通したいなんて書いてないです。
私は環境変数を設定したいのです。

また、GUIのアプリケーションでも環境変数を参照するものはあります。

> それは間違った知識です
> ログイン時に1回実行されます

本当にそうですか?
現に、OSリブート後にGUIアプリを開いても環境変数が読み込まれておらず、ターミナルを一度起動してから同じアプリを起動すると環境変数がセットされて意図した動作をしています。
私の手元の環境がおかしいのでしょうか?

お礼日時:2021/04/27 19:01

zshの場合はhomeディレクトリに.zshrcを作って


bashなら.bashrcもしくは.bash_profile
テキストエディットなどで開いて
export PATH=$PATH:/usr/local/bin
のように記述して保存すれば良いです

bashなら以下で更新
source ~/.bashrc
source ~/.bash_profile

zshならいちおうターミナル再起動

確認のためにPATHが通っているかの確認はターミナルで
echo $PATH
先程のpathの/usr/local/binが出力されれば通ってます
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!