プログラムのインストール先って /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
以下にインストールしていいかも。
いちいち使い分ける必要性が薄いので。