macOS /etc/paths.d [閉じる]

macOS /etc/paths.d [閉じる]

だからこのスレッドはmacOS SierraのPATHにエントリを追加するには、/etc/pathsまたは/etc/paths.dを使用しますか?/usr/bin:/bin:/usr/sbin:/ を変換するのに役立つ macOS (ne OS X 12, Sierra) /usr/libexec/path_helper に関連する /etc/paths および /etc/paths.dの簡単な説明です。 sbin(/ etc / pathsの内容、1行に1つ)はPATHの先頭にあります。

私はその意図(およびSIPの背後の意図)を理解しています。しかし、それが実際に本当ならどうなりますか?する実際に何をしているのかを知るするたとえば、実行可能ファイルを独自の ~/bin にしたいので、同じ名前の実行可能ファイルを置き換えるために、Apple は多くの役に立たない方法の 1 つに変更または制限されました。あるいは、Appleのデフォルトバージョンより前に/opt/...バージョンを探したいかもしれません。 (たとえば、ウィンドウバージョンのemacsを実行したい場合)

私はこのメカニズムを使うことに興味があります。私が理解したのは、/etc/paths.d/を変更する前にSIPを無効にする必要があることです。しかし、/etc/paths.d/にファイル(00LookHereFirstなど)を置くことができるかどうかを知っていますか? /etc/pathsに追加しますか? (もちろん、/ etc / pathsを修正してください。しかし、私は親切にしたいと思います。そしてもちろん、新しいバージョンにダウングレードすることを悩ませると、それは破棄されます。)

「BSDに準拠した大人に見たい場合」の形式の答えは役に立たないと見なされます。

(ごめんなさい、レコード会社。私が限られた能力で得ることができる最も近いところです。)

ベストアンサー1

私の質問に答えるには:/ etc / pathsのディレクトリは、ファイルに表示される順序で/ etc / paths.dのファイルディレクトリの前に追加されます。 00 で始まらないファイルに含まれるディレクトリの前にある 00 コンテンツのディレクトリ

ユーザー自身の起動ファイル内のPATH修正がパスヘルパーメカニズム(存在する場合)にどのように統合されるかはわかりません。 path-helper は /etc/profile で呼び出され、伝統的に $HOME/.[何でも] 以前に評価されます (私の場合は .bash_profile だけがあるようですが bash を実行しています。予想される違いが発生する場合がありました) )。 .bash_profileと.bashrcの間の内容は尊重されます。)しかし、$ HOME初期化ファイルが評価された後、パスヘルパーが呼び出されます。

回答が簡単なので、このような質問をして申し訳ありません。私は/ etcの下のツリーが制限されているので、回復パーティションから起動して確認する必要があると仮定しました。 10.aLongTimeAgoから10.12.5(希望)に移行する長いプロセスが終わり、まだ再起動したくないからです。ただし、/ etcはリンクであり、私が知っている限り、/ etc /ツリーのすべてのファイルは制限されません。

説明: 他のすべての前に /etc/ports を配置することは必須であり、眉をひきます。 AppleがPATH生成の構築について真剣に考えていて、そのようなことが起こっているのを見たい場合は、/etc/pathsに入れたものを/etc/paths.d/00SystemDefaultなどに配置する必要があります。この場合、/etc/paths.d/000ScrewYourDefaults を使用してそれをオーバーライドできますが、それでも機能します。

お待ちいただきありがとうございます

おすすめ記事