プログラムのインストール先って /usr/local/ にすべき?
それとも /opt/ のほうにすべき?
と、しばしば悩むので整理しておく。
もし git リポジトリ置き場に悩んでいる場合
リポジトリ管理ツール ghq を使うといいよ!
ghq を使うなら以下の内容を見る必要もなくなるので。
それぞれの役割
役割としてよく説明されているものを簡単にまとめたのが下の表。
また他によく使う $HOME/bin, $HOME/.local/ も追加。
| Path | Desc |
|---|---|
/usr/local/ |
システム管理者がソフトウェアをローカルにインストールする場合 |
/opt/ |
拡張アプリケーション・ソフトウェアパッケージをインストールする場合 |
$HOME/bin, $HOME/.local/
|
一般ユーザがプログラムをインストールする場合 |
もうちょっと具体的な使い分けは下記の通り。
ローカルなインストールは /usr/local/
一般的なローカルでのインストール(ソースからコンパイル、バイナリをダウンロードなど)においては、 /usr/local/ にインストールすればよい。
/usr/local/ 以下の配置方法としては、
-
/usr/local/<app>/ディレクトリを作成して配置-
Golang のデフォルトインストールがこのレイアウト(
/usr/local/go/) -
PATH の通し方については、シンボリックリンクを
/usr/local/binに配置 - ソースは
/usr/local/src/<app>に配置
-
Golang のデフォルトインストールがこのレイアウト(
とする。
ユーザのみ利用は $HOME/bin, $HOME/.local/
システム全体の利用ではなく、自分のみ利用する予定のプログラムなら $HOME/bin や $HOME/.local/ 以下にインストールする。
個人的に $HOME/.local 以下にインストールすることにして、
-
/usr/localと同様のレイアウト - ディレクトリのパーミッションを
700にして制限
とする。
/opt/ を使う場合
/opt/ にインストールするのは、パッケージファイル単体を dpkg や rpm でインストールする場合と思われる?
また /opt/ にインストールしようとする場合、可変ファイルは /var/opt 、設定ファイルは /etc/opt に配置すべきらしい。
したがって普段は気にしない、使わない。
結論
個人的な方針として次のようにする。
-
プログラムの開発環境ツールなどはシステム全体で使ったり
sudoと合わせて使ったりするので、基本的に/usr/local/以下にインストールする。-
/usr/local/<app>/とツールごとにディレクトリを作成 - シンボリックリンクを
/usr/local/binに配置
-
-
その他プログラムは
$HOME/.local/以下にインストールする。-
/usr/localと同様のレイアウトにする
-
余談
Raspberry Pi や仮想マシンなど自分一人しか使わないことがわかっている場合は、全部 $HOME/.local 以下にインストールしていいかも。
いちいち使い分ける必要性が薄いので。