複数のユーザーが共有するソフトウェアプロジェクトを保持するための標準ディレクトリはありますか?

複数のユーザーが共有するソフトウェアプロジェクトを保持するための標準ディレクトリはありますか?

複数のユーザー(Pythonプロジェクトなど)がアクセスする必要があるソースコードで作業している場合、これらのプロジェクトを保存するための標準的な場所はありますか?

私が見つけたこの回答これは/usr/local/アプリケーションのインストールを提案しますが、これが進行中のプログラミングプロジェクトのソースコードを保存するのに適した場所であるかどうかはわかりません。

答え1

FHSにはこの目的に割り当てられた標準ディレクトリはありませんが、/optモード770を割り当ててユーザーを適切なグループに入れることができます。

しかし、私は高いこれらのアクティビティのために、バージョン管理システム(たとえば)をインストールすることをお勧めしますgit。これにより、gitはソースリポジトリを処理し、各開発者は自分のhomedirのプライベートリポジトリで作業します。

答え2

答えは、ユーザー間のデータ共有ではなくプログラムのインストールについて説明しています。このデータがExcelファイルであるか、ムービーコレクションであるか、ローカルで開発されたソースコードであるかどうかにかかわらず、同じ場所に残すべきでは/usrありません/opt

Directoriesと実際には、/usrすべてのディレクトリには、File System Hierarchy Standard(またはFHS)という文書で定義されている非常に明確に定義された使い方の意味があります。最新バージョンは次の場所でホストされています。/opt/varhttp://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html。オペレーティングシステム(またはより具体的には、Linuxディストリビューションに含まれる複数のプログラムとユーザーが直接インストールした他のプログラム)には、これらのディレクトリの使用に関連する特定の動作があるため、この意味を尊重することが重要です。たとえば、下にサブディレクトリを作成し、/usr/share そのディレクトリの名前が後でインストールしようとしているプログラムの名前と競合することがわかった場合、インストーラはそのサブディレクトリを上書き、変更、名前の変更、または削除できます。このディレクトリの内容です。これがわかりやすい場合は、チームのデータファイルをWindowsベースのコンピュータの下に/usr置くか/opt、それに対応する方法で保存することを検討してください。C:\Windows\C:\Program Files

1つの注目すべき点はFHSです。複数の当事者(ローカルサイト、ディストリビューション、アプリケーション、ドキュメントなど)間のファイル配置を調整する必要がある問題を解決します。。 FHSは、あなたが直面する可能性があるすべての状況に対してルールを作成しようとはしません。ローカルファイルのローカル配置はローカル問題です。(FHS、セクション1.1)。

元の質問に戻り、いくつかの許容可能なオプションを考えてみましょう。

  • /home/<projectname>または/home/<someprefix>/<projectname>- FHSとは、次のことを意味します。/homeかなり標準的な概念ですが、明らかにサイト固有のファイルシステムです。。以下のすべてのディレクトリが実際のユーザーの名前でなければならないという要件はまったくありません/home。したがって、グループまたはプロジェクトのサブディレクトリを作成することは許可されます。ただし、これを行うには、最終的な競合を回避するためにいくつかの手動予防措置が必要です(新しいユーザーが作成された場合は名前が一致します)。既存のプロジェクトの名前)。

  • /srv/<projectname>または/srv/<someprefix>/<projectname>- FHSの下で、/srvこのシステムが提供するサイト固有のデータが含まれています。。 FHSは引き続き説明した。/ srvサブディレクトリの名前を指定するために使用される方法は指定されていません。、そして次のような例を提供します/srv/compsci/cvs(これはおそらくCVSリポジトリ自体である可能性があります)。コンピュータサイエンス作業チーム)。私の個人的な経験によれば、/srvこのディレクトリを利用するほとんどの管理者は、クライアントごと、サイト別、またはプロジェクト別のサブディレクトリ(時にはクライアント別、プロジェクト別のサブディレクトリ)を使用してから、データディレクトリを次の場所に追加します。このサブディレクトリ。

  • /<someprefix>/<projectname>または/media/<volumename>/<someprefix><projectname>- 正直なところ、なぜこのオプションがLinuxの世界でほとんど言及されていないのかわかりませんが、明確にします。あなたのFHSは、確立されたセマンティクスと矛盾しない限り、ルートレベルで新しいディレクトリを自由に作成できることを意味します。たとえば、必要に応じてディレクトリを作成し/projectsたり、その中のファイルを整理したりできます。/team一部の管理者は、それをファイルシステムの残りの部分から切り離して他のボリューム(下/media/volumename)をマウントすることを好むことを知っています。 Windowsの例えに戻ると、これはすぐ下に新しいディレクトリを作成したり、C:\別のボリュームを設定したりするのと似ていますD:\。たとえば、どちらの戦略も良く見えます。受け入れられるほとんどの管理者に当てはまります(どちらかのオプションの好みは異なります)。

個人的には、私は/srv/<client>/<project>/すべてのビジネスサーバーに1つの構造を持つことを好みます。これは、特定のプロジェクトのすべてのサービスを簡単に構成できるためです。これらのディレクトリの1つには、通常、サービス指向と機能指向のサブディレクトリの両方があります。たとえば、、、、...があります。etcディレクトリ自体は、htdocsgitリポジトリの名前に従って細分化されます。プロジェクトには複数のgitリポジトリがあります)。logsgitgit

関連情報