/usr/localディレクトリに何を置けばよい?

本ブログで良く使う/usr/share/dict/wordsが存在する/usrディレクトリは、
FHS(http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04.html)によると、
いつも良く使うコマンドの格納場所を見ても分かるように、 リードオンリーな共有ファイルが格納されています。

~$ which perl ruby python head rev wc pr
/usr/bin/perl
/usr/bin/ruby
/usr/bin/python
/usr/bin/head
/usr/bin/rev
/usr/bin/wc
/usr/bin/pr
~$ 

/usrにはこのようなディレクトリが並んでいます。

~$ tree -L 1 /usr
/usr
├── bin
├── games
├── include
├── lib
├── local
├── sbin
├── share
└── src

上記の内、bin lib local sbin shareに関しては、必須ディレクトリとなります。games include srcは、オプションです。中でもlocalディレクトリは、OS、ディストリビューション管理のファイルではなく、linuxユーザ(管理者)のファイルの格納場所となります。あれ、ユーザが使えるディレクトリって$HOME、つまり、/home/ユーザ名 ではないのでしょうか?
もちろん、$HOMEは使いますが、/usr/localは、複数ユーザが参照できるディレクトリなのです。よって、/usrは、すべてリードオンリーでなければならないのですが、/usr/localへファイルを格納する時は、当然ライトすることになります。

全国で村がつく住所の数をgrepとwcで求める」で取得した郵便番号データは、共有する場合、/usr配下のどこに格納するべきでしょうか。
/usr/local/shareとかはいかがでしょう。絶対にここに置かないといけないということはないのですが、FHSを考慮することにより、ファイルの紛失が少なくなります。ファイルがどこにあるか把握しているだけで、コマンドラインの可能性がぐんと拡がります。

~$ sudo mkdir -p /usr/local/share/zipcodes
~$ mv KEN_ALL.CSV !$/

SVGで星空を描く」で使用したNASAの星データは、ここに格納しました。

~$ sudo mkdir -p /usr/local/share/nasa/
~$ mv heasarc_hipparcos.tdat !$

ファイル名が思い出しにくければ、シンボリックリンクでわかりやすい名前にするのもよいでしょう。

~$ cd /usr/local/share/nasa
takk@deb:/usr/local/share/nasa$ sudo ln -s heasarc_hipparcos.tdat stars
takk@deb:/usr/local/share/nasa$ ls -l
合計 83240
-rw-rw-r-- 1 root root 85234422  3月 19  2015 heasarc_hipparcos.tdat
lrwxrwxrwx 1 root root       22  7月  8 22:26 stars -> heasarc_hipparcos.tdat
takk@deb:/usr/local/share/nasa$ 

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA