- PR -

独自開発プログラムのディレクトリ構成について

1
投稿者投稿内容
ケロロ
会議室デビュー日: 2003/04/08
投稿数: 3
投稿日時: 2004-09-08 16:17
現在、Linux上で動作する業務アプリの開発を行っております。
業務上、Linuxの採用は初めてなので、すべてが手探りで
最近どうにか勝手が分かってきたという状態です。

そこで質問なのですが、
独自で開発したプログラムは、サーバ上のディレクトリに
どのように配置するのが一般的なのでしょうか?
/usr/local 以下に置くというのは認識しているのですが、
それ以下の使い方について詳しく言及している資料が見当たらず
こちらで質問させて頂きました。

例えば、以下のようなディレクトリ構成のCプログラムがあります。
 /ex_prg
  /command
  /exe
  /file
  /temp

この /ex_prog ディレクトリごと、
/usr/local 以下に置くのが一般的なのか、
それとも /usr/local/bin 以下に置くのが一般的なのでしょうか。
また、Javaプログラムも同じような考え方でよいのでしょうか。
その他、一連の処理の中で作成される中間ファイル的なものは
/home/ユーザ名 以下に置くものなのか、
または、ユーザごとにかち合わないファイル命名規則を作り
/var 以下に置くのが一般的であるのか、
判断しかねています。

おそらくケースバイケースであり
動作には大して影響しないレベルで悩んでいると認識はしているのですが、
今回決定したディレクトリ構成で今後数年間運用していくことになるため
慎重に調べてから決定したいと考えています。

実際に運用を行っている方のアドバイスを頂けると
大変助かります。
どうぞご教授ください。宜しくお願い致します。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-09-08 17:01
私の場合、

/usr/local/bin マルチユーザーで使う単体・クライアントプログラム
/usr/local/sbin マルチユーザーで使うデーモン・サーバープログラム
/usr/local/jdk1.5.0/ Java 開発キット インストール先
/usr/local/jre1.5.0/ Java 実行時環境インストール先

/home/foobar/src 自分が使う C のソース
/home/foobar/bin 自分だけが使うソースをコンパイルした自分だけが使う実行ファイル
/home/foobar/java Javaのソース
/home/foobar/perl Perl のソース
/home/foobar/trash ゴミ・お宝
/home/foobar/tmp 一時的に使うファイル
/home/foobar/pkg pkg ファイル
/home/foobar/tgz tar + gzip で圧縮されたファイル
/home/foobar/lzh lha で圧縮されたファイル
/home/foobar/zip zip ファイル
/home/foobar/public_html Web コンテンツ
/home/foobar/cgi-bin CGIファイル

その他は、適時ディレクトリを作っていきます。
後は、環境変数 PATH に加えるか加えないかの問題となります。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-09-08 17:29
ども。がるです。
んと、作業中はまぁ適当にhomeディレクトリ配下などで扱うと
楽です。
無論、CVSなど、バージョン管理ソフトを使うほうが望ましいです。

で。本番環境ですが。私は
/opt
ってのをよく使いますねぇ。Linuxらしくないやい、って話もある
のですが :-P
ケロロさんのプログラムを予想しつつ例にとると、

/opt/ex_prg
をルートにして、
 /command
 /exe
 /file
 /temp
をそれぞれ作成、って感じでしょうか?
fileとtempの区別の意味が微妙に分かりにくいのですが、まぁ
その辺は個人差もあろうかと思いますので。
あとは、個人的には
 /etc
 /conf
あたりの、いわゆる「設定ファイルを入れる場所」を作っておくのも
よいと思われます。

まぁただこの辺は非常に「個人の好み」ってのが強いので。
参考程度にみていただければ ^^
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2004-09-08 22:06
Filesystem Hierarchy Standard
1つの基準になるかと思います。

私自身は、
/usr/local/ とか /opt/ とか いっそのこと /アプリケーション名/ とかに置いてます。
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2004-09-09 10:30
引用:
ケロロさんの書き込み (2004-09-08 16:17) より:
動作には大して影響しないレベルで悩んでいると認識はしているのですが、
今回決定したディレクトリ構成で今後数年間運用していくことになるため
慎重に調べてから決定したいと考えています。



その数年間に /usr/local や /home が NFS マウントになったり、
/usr/local が Read only マウントになったりした場合、
動作に無茶苦茶影響するのではないでしょうか。

上記の場合、ホスト毎に変える必要のあるパラメータを含む
設定ファイルを /etc 以下に置いたり、実行時作成ファイルを
/var や /tmp 以下に置かなければならなくなります。
ケロロ
会議室デビュー日: 2003/04/08
投稿数: 3
投稿日時: 2004-09-09 10:45
コブラさん、がるがるさん、ちいにぃさん、はしもとさん、お返事ありがとうございました。
みなさんのご意見を伺っていると、
ディレクトリ構成のルールに「これ」というものはなく、
(好みによって)数多くあるということが分かりました。

>コブラさん
体系的にきちんとファイル管理をされているのですね。
私の場合、思いつきでディレクトリを掘ってしまったり、
面倒だから全部同じ階層にファイルをぶち込んでしまったりで
探したいファイルが見つからないことがしばしば・・・。
コブラさんの環境を参考にさせていただき、
きちんとファイル管理したいと思います。

>がるがるさん
/usr/local しか頭になかったのですが
/opt に置くというのもアリなんですね。
また、設定ファイルについても
「プログラムと同じ場所に入れるべきか、それとも /etc 等に入れるものなのか」と
考えていたので、参考になりました。
ありがとうございます。

>ちいにぃさん
"いっそのこと /アプリケーション名/ とかに置く"
というのも可能性としてはアリなんですね。
FHS、このような資料があるとは知りませんでした。
大変参考になります。ありがとうございました。

>はしもとさん
数年間業務として運用していくということを考えると
一般的に言われているルールに則って
きちんと体系だったディレクトリ構成に配置すべきということですね。
貴重なご意見ありがとうございました。


みなさまのご意見を元に構成を考えてみたいと思います。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-09-09 10:52
Linux 系では、 `locate` コマンドで見失ったファイルを一発で検索できます。
これは便利!
ケロロ
会議室デビュー日: 2003/04/08
投稿数: 3
投稿日時: 2004-09-09 11:04
さっそく試してみました。
findよりもかなり高速でビックリしました。
(もっとコマンドを覚えていかなきゃですね・・・)

アドバイスありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)