104
103

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

/usr/local と /opt の使い分け

Last updated at Posted at 2019-10-03

プログラムのインストール先って /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> に配置

とする。

ユーザのみ利用は $HOME/bin, $HOME/.local/

システム全体の利用ではなく、自分のみ利用する予定のプログラムなら $HOME/bin$HOME/.local/ 以下にインストールする。

個人的に $HOME/.local 以下にインストールすることにして、

  • /usr/local と同様のレイアウト
  • ディレクトリのパーミッションを 700 にして制限

とする。

/opt/ を使う場合

/opt/ にインストールするのは、パッケージファイル単体を dpkgrpm でインストールする場合と思われる?
また /opt/ にインストールしようとする場合、可変ファイルは /var/opt 、設定ファイルは /etc/opt に配置すべきらしい。

したがって普段は気にしない、使わない。

結論

個人的な方針として次のようにする。

  • プログラムの開発環境ツールなどはシステム全体で使ったり sudo と合わせて使ったりするので、基本的に /usr/local/ 以下にインストールする。

    • /usr/local/<app>/ とツールごとにディレクトリを作成
    • シンボリックリンクを /usr/local/bin に配置
  • その他プログラムは $HOME/.local/ 以下にインストールする。

    • /usr/local と同様のレイアウトにする

余談

Raspberry Pi や仮想マシンなど自分一人しか使わないことがわかっている場合は、全部 $HOME/.local 以下にインストールしていいかも。
いちいち使い分ける必要性が薄いので。

参考

104
103
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
104
103

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?