Manjaro:ユーザーソフトウェアはどのディレクトリに配置する必要がありますか?

Manjaro:ユーザーソフトウェアはどのディレクトリに配置する必要がありますか?

私はどこでも利用できるいくつかのプログラム(python、bashなど、いくつかは私のプログラム、いくつかはサードパーティのプログラム)があります。だから私は$ PATHのどこかに置くことを考えました。最近Ubuntuから切り替えましたが、これは一種の標準的な慣行です。これらのものを入れてください/usr/local/bin。ただし、Manjaroには次のエラーメッセージが表示されますPermission denied。 。私が理解したのは、問題は、Archベースのオペレーティングシステムでは、このディレクトリがパッケージマネージャ/usr/local/binpacmanでも使用されることです。 (どこかで読みましたが、ソースコードはもはや確立されています)。

要約すると、私に必要なものは次のとおりです。

  • これらすべてのスクリプトを保持できる$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>.shPATH=${PATH}:/opt/<packagename>/bin/

シングルユーザーの場合は、複製パスを入力して~/.profileディレクトリ内の任意の場所に複製するだけです/home/<username>

関連情報