[Linux] /usr/local/の使い方まとめ

/usr/local/ が何なのかイマイチわかってなかったので調べてみました。

結論

「システム管理者が自分でコンパイルしたアプリケーションをインストールする場所」として使うのが一般的なようです。

事例

/usr/local ‐ 通信用語の基礎知識
UNIXやPOSIX準拠OS(Linux等)で、利用者がインストールしたソフトウェア等を置くディレクトリ。

オペレーティングシステム(OS)によって考え方は異なっているが、Linuxの標準FHSでは、自分でコンパイルしたバイナリは/usr/local以下に置くことになっている。

このため、/usr/local以下の使用はホスト管理者に任せられており、一般にOSインストール直後は空になっている。

どのようなディレクトリを作るかは、一般に管理者次第である。

例えば、次のようなディレクトリが使われる。

/usr/local/bin
/usr/local/lib
/usr/local/sbin
/usr/local/share


ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ
たとえば、asoとbmdという名前のソフトウエアをインストールしている状態はこんな感じ:
/usr/local/
/usr/local/ ┬ app/ ┬ aso  → aso-1.3
            │      ├ aso-1.2/ ┬ bin/ ┬ armored
            │      │          │      └ scrum
            │      │          ├ sbin/ ─ syd
            │      │          └ share/ ─ man/
            │      ├ aso-1.3/ ┬ bin/ ┬ armored
            │      │          │      └ scrum
            │      │          ├ sbin/ ─ syd
            │      │          └ share/ ─ man/
            │      ├ bmd  → bmd-2.0
            │      └ bmd-2.0/ ┬ bin/ ─ tri
            │                  ├ include/ ─ angle.h
            │                  └ lib/libsnk.so.2.0.0
            ├ bin/ ┬ armored → ../app/aso/bin/armored
            │      ├ scrum   → ../app/aso/bin/scrum
            │      └ tri     → ../app/bmd/bin/tri
            ├ include/ ─ bmd → ../app/bmd/include
            └ sbin/ ─ syd    → ../app/aso/sbin/syd


Linux Square > 各ディレクトリの役割を知ろう(サブディレクトリ編) 各ディレクトリの役割を知ろう(サブディレクトリ編)(2/2)
/usr/local以下は、システム管理者が自分でアプリケーションをインストールする場所として利用します。
ここは、システム関連のソフトウェアをアップデートしても変更されないようになっています。
サブディレクトリはbin、games、include、lib、man、sbin、share、srcが必須です。
各サブディレクトリの用途は、/usrや/にある同名のディレクトリに準じます。

/usr	 
└	 local/	パッケージシステム管理外
 	├	bin/	ローカルにインストールしたプログラム
 	├	games/	ゲーム
 	├	include/	C言語用ヘッダファイル
 	├	lib/	ライブラリとプログラム
 	├	man/	/local/bin用manページ
 	├	sbin/	管理者用プログラム
 	├	share/	アーキテクチャに依存しないデータ
 	└	src/	ソースコード

管理者が自由に使える/usr/local。
上記のサブディレクトリは「必須」に指定されている


AmazonEC2上のあるインスタンスの場合

参考までに、私が使っているEC2のCentOS5.6イメージ(ami-46b91347)ではこのようになっていました。
これはもちろんAMIによって変わってくると思います。

# tree /usr/local/
/usr/local/
|-- bin
|   |-- s3cmd -> /home/s3sync/s3cmd.rb
|   |-- s3sync -> /home/s3sync/s3sync.rb
|   |-- scalarizr
|   `-- szradm
|-- etc
|-- games
|-- include
|-- lib
|-- lib64
|-- libexec
|-- sbin
|-- scalarizr
|   `-- scripts
|       |-- amiscripts-to-scalarizr.py
|       |-- halt
|       |-- reboot
|       |-- udev
|       `-- update
|-- share
|   |-- info
|   `-- man
|       |-- man1
|       |-- man1x
|       |-- man2
|       |-- man2x
|       |-- man3
|       |-- man3x
|       |-- man4
|       |-- man4x
|       |-- man5
|       |-- man5x
|       |-- man6
|       |-- man6x
|       |-- man7
|       |-- man7x
|       |-- man8
|       |-- man8x
|       |-- man9
|       |-- man9x
|       `-- mann
`-- src
カテゴリ:

人気記事