私はどこでも利用できるいくつかのプログラム(python、bashなど、いくつかは私のプログラム、いくつかはサードパーティのプログラム)があります。だから私は$ PATHのどこかに置くことを考えました。最近Ubuntuから切り替えましたが、これは一種の標準的な慣行です。これらのものを入れてください/usr/local/bin
。ただし、Manjaroには次のエラーメッセージが表示されますPermission denied
。 。私が理解したのは、問題は、Archベースのオペレーティングシステムでは、このディレクトリがパッケージマネージャ/usr/local/bin
pacmanでも使用されることです。 (どこかで読みましたが、ソースコードはもはや確立されています)。
要約すると、私に必要なものは次のとおりです。
これらすべてのスクリプトを保持できる$PATHのディレクトリ
このディレクトリのバージョン管理の可能性
ハードドライブのどこかにいくつかのディレクトリを作成し、それを$ PATHに追加できることを知っていますが、これを行う一般的な方法があるかどうか疑問に思います。
編集:これは私の$ PATH変数です。
/home/douglas/bin:/home/douglas/bin:/home/douglas/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin
/home/douglas/bin
なぜ二度現れるのか知っている人はいますか?
答え1
この
/usr/local
階層は、システム管理者がソフトウェアをローカルにインストールするときに使用されます。システムソフトウェアが更新されたら上書きしないでください。ホストグループ間で共有できますが、/usrにはないプログラムやデータに使用できます。
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s09.html#Purpose24
システムのすべてのユーザーがスクリプトを使用できるようにするには、そのスクリプトをその場所に配置します。
pacman
競合が発生すると、既存のファイルが上書きされず、インストールが終了します。
主な質問は次のとおりです。スクリプト/プログラムが特定のユーザーにのみ機能するようにしますか、またはシステム内のすべてのユーザーにのみ機能するようにしますか?
バージョン管理機能を持つすべてのユーザーとソフトウェア(それぞれ.gitまたは.svnディレクトリを含む)の正しいシステム全体の実装を配置できます/opt/<packagename>
。/etc/profile.d/jre.sh
シェル環境は、ログインシェルが起動されるたびに/etc/profile.d/<packagename>.sh
実行されるファイルによって拡張されます。次の環境データが含まれます。 /etc/profile
<packagename>.sh
PATH=${PATH}:/opt/<packagename>/bin/
シングルユーザーの場合は、複製パスを入力して~/.profile
ディレクトリ内の任意の場所に複製するだけです/home/<username>
。