人生最悪の忘れ物

linuxのフォルダと配置について

そんなもの好きに配置すれば良いというのは分かっているとして。。。

windowsの場合、
ユーザー毎のモノはDocuments and Settingsに
プログラムはProgrm Filesに
その他は適当に適切な場所へ
という使い方が一般的な形ですが、

linuxの場合、どうなのでしょうか?
ユーザー毎のモノはhomeに
それから、、、
プログラムはusrに入れるのが良いのか?それともvarか?
この辺りがわかり辛いです。

同じデータベースソフトのデフォルトでも
mysqlは
/var/lib/mysql/
postgresは
/usr/local/pgsql/
と、割れています。

くどいようですが、
そんなものただのデフォルトなので好きに配置すれば良いというのは分かっています。

varとusr、またその他の決まりモノのように存在するフォルダのあるべき考え方、使い方を教えてください。

個人的な印象では
varはログやデータなどの置き場、
usrはアプリのインストール場所
という感じがします。

mysqlはデータをvarに置きつつも、コマンドは/usr/binにあります。
postgresはアプリのインストール場所についでにデータの置き場つくったって感じでしょうか。

あと、自作でプログラムやシェルを作った場合、
var、usr、home、その他
どこに置くのが妥当でしょうか?

A 回答 (7件)

フォルダの配置についてはきちんと定義されています。


RedHatで言えば、以下を参考にされると良いでしょう。
http://www.jp.redhat.com/support/manuals/RHL62/r …
    • good
    • 0
この回答へのお礼

ありがとうございます。
的確なリンク大変参考になりました。

お礼日時:2010/08/19 13:29

歴史的なものです。

よかったら参考 URL を。

自作プログラムとかは私だったら /home/bin か /usr/local/bin かな。趣味の問題ですね。

参考URL:http://d.hatena.ne.jp/ytakano/20100715/1279219401
    • good
    • 0

アプリケーションの場合、インストーラによるので微妙ですが


ソースからコンパイルする場合はprefixを指定してやるのが常套なので
たとえばmysql5.1なら
./configure --prefix=/usr/local/mysql51 ・・・
などバージョンも含めたフォルダを指定しますね

その場合/usr/local/mysql51以下にvarやetcやbinなどが作成され、
他のバージョンとフォルダを取りあって競合したりすることがなくなります
まさアプリの削除もmysql51を削除してしまえばざっくりきれいになります。
※/etc/my.cnfなど残ったり完全なアンインストールは難しいですが

こまかいバージョンをテストしながらインストールするにはやはり
/usr/localを基準にアプリのわかりやすい名前をつけたフォルダを作るのをお勧めします

なお、自作のシェルは他の方も書かれているように
/usr/local/binなどにしておくと、パスの設定が他人からも使いやすいので
便利ですが、逆に競合のことをかんがえると~(カレント)につくっておくのが
他人に迷惑をかけないやり方になります
    • good
    • 0

RedHat的な使い方は、



/var は可変容量のファイル置き場。つまり増えたり減ったり(普通は増えるだけだけど)するファイルを置く領域。おもにログファイルとか、データベースのデータとか、Webコンテンツとか。決してシステムログだけが使うという領域ではない。posgresもrpmで入れればデータは/var/lib/pgsql/以下ではなかったかと?
普通ここにプログラムは置かない。領域は充分目いっぱい確保しておく。

/usr は認識の通り。コンパイルして入れるアプリはここにデータ領域を置いたりするけど、私は絶対にやらない。シンボリックリンクを張ってでも/var以下に置く。なので通常ここはせいぜい5GBもあれば足りる。

自作スクリプトの場合、システム管理的はものは/usr/local/sbin/ とか、一般コマンド的なものは/usr/local/bin/で良いと思う。私はシステム管理的なものは、/root/bin/にまとめるようにしている。(移設やなんかが一発でできるので)
個人的なスクリプトならもちろん自分のホームディレクトリ以下だ。

結局はそれぞれの癖があるしそれがパテーション配分にも表れるんだけど、それゆえ他人がインストールしたシステムはしっくりこない場合は多い。
    • good
    • 0
この回答へのお礼

有り難うございます。

>自作スクリプトの場合、システム管理的はものは/usr/local/sbin/ とか、一般コマンド的なものは/usr/local/bin/で良いと思う。

業務的なものはどうでしょうか?
業務1、業務2があったとすれば
/usr/local/bin/gyoum1
/usr/local/bin/gyoum2
とかでしょうか。

あと、
・少し大きめのファイルをちょっと退避しておきたい
   プログラムの一時バックアップ
   データベースのダンプファイル
   ワーク的に使用するエリア
   など

・自作のプログラムから出力するログや一時ファイル


絶対にこうでないとイケないなんて事は無いのは承知です。
個人的な好みでも結構です。
参考までにどこに置くか意見をお聞かせ下さい。

お礼日時:2010/08/19 13:42

FHS




# 技術者ならば、これでわかるでしょう。
    • good
    • 2

Sun-OS,Solarisからunixを触ってるからか、ソフトは/usr/local/以下にインストールしますね。


/usr/local/bin
/usr/local/sbin
ですね。

/var以下はvariableの略か何かだったと思うので、システム関係以外では使わないですね。

ユーザーが作ったファイルは/home以下に、プログラムなら/home以下に置いて、/usr/local/binかsbinにシンボリックリンクを置きます。

最初に自分なりにルールを決めるだけで、何処に置くのが妥当というのは無いですね。
ただ、/varある程度空きがないとログが吐き出せないなどエラーが発生したような気がします。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/08/19 13:43

unix系にも方言みたいなものがあり、携わったOSによって利用者にも癖が出来ると思います。


一般的にユーザを作成すると/homeの下にそのユーザのディレクトリが出来ますから、そこを使うことになります。
root権限でインストールするソフトウエアなどは/usr/local下になるでしょう。
設定ファイルなどは /etcかまたは/usr/etcの下ですね。
var下は一時ファイルやログなどの保存場所的な感じかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/08/19 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報