読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】自分で入れたソフトはどこに置くん?/etc・/var・/usr・/opt・/tmp の役割(FHS)【LPICレベル1】

15レスカテゴリ:Linux
1: 名無しさん

ソフトを自分でビルドしたら、置き場所に迷った
/usr と /opt と /usr/local、何が違うん?

2: 名無しさん

前提のおさらい。cp・mv・mkdir などでファイルとディレクトリを扱い、ls -ld でディレクトリそのものの情報を見る

3: 名無しさん

>>1
置き場所の決まりは FHS(Filesystem Hierarchy Standard)。いまの版は 3.0 で、man の hier(7) にも同じ考え方で一覧がある

4: 名無しさん

>>3
よく問われるもの(hier(7) の説明から)
/etc そのマシンの設定ファイル
/var サイズが変わるファイル(ログ、スプール)。/var/log ログ、/var/spool 順番待ちのファイル、/var/lib プログラムの状態、/var/cache キャッシュ
/tmp 一時ファイル。予告なく消されることがある(定期のジョブや起動時など)
/var/tmp 期間を決めずに置く一時ファイル

5: 名無しさん

>>3
続き
/home 一般ユーザーのホーム、/root root のホーム
/boot ブートローダとカーネルなど起動に必要なもの
/dev デバイスファイル、/proc と /sys はカーネルの情報を見せる仮想のファイルシステム
/run 起動してからのシステムの情報(以前の /var/run)
/srv このシステムが提供するサービスのデータ
/media USB メモリなどリムーバブルメディアのマウントポイント、/mnt 一時的にマウントする場所

6: 名無しさん

>>1
本題の置き場所
/usr パッケージで入るプログラム(/usr/bin、/usr/lib、アーキテクチャに依らない /usr/share)
/usr/local そのマシンで自分で入れたもの(/usr/local/bin など)
/opt 追加のソフトウェアをパッケージごとにまとめて置く

7: 名無しさん

>>6
じゃあ自分でビルドしたら /usr/local、ベンダーの一式なら /opt か

8: 名無しさん

>>7
そう。/usr はパッケージ管理の持ち物やから、手で置くと更新で上書きされたり衝突したりする

9: 名無しさん

>>5
/bin と /usr/bin は?

10: 名無しさん

>>9
hier(7) では /bin は「シングルユーザーモードや起動・修復に必要なプログラム」、/sbin はそのうち主に管理者が使うもの。ただ最近のディストリビューションは /bin を /usr/bin へのシンボリックリンクにしてまとめてる(usr の統合)
この Debian でも ls -ld /bin は /bin -> usr/bin、/sbin と /lib も同じやった

11: 名無しさん

>>10
古い資料の「/bin と /usr/bin は別」をそのまま信じたらあかんのか

12: 名無しさん

>>11
試験では役割の違いとして問われる。実機ではディストリビューションと版によって違う、と分けて覚える

13: 名無しさん

>>4
/tmp と /var/tmp の権限は?

14: 名無しさん

>>13
どっちも drwxrwxrwt。誰でも書けるけど、最後の t(スティッキービット)で他人のファイルは消せない

15: 名無しさん

>>6
設定は /etc、変わるものは /var、自分で入れたら /usr/local か /opt。これで迷わんわ

管理人のひとこと