質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

2回答

3975閲覧

Vagrantをインストールすると/opt/vagrant以下にインストールされる

y_natsui

総合スコア49

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2015/08/01 06:00

只今、MacにてVagrantをインストールして環境構築をしようとしているのですが、ファイルが/opt/vagrant以下にインストールされてしまいます。

これはどういった理由からこの場所にインストールされているのでしょうか?
/Applications/Vagrant以下にインストールされるのかと思っていたので、何故こういう状況が起きるのかを知りたいです。

自分自身でも色々調べたところMacPortsも関係しているのでしょうか?

Vagrantの公式のダウンロードサイトよりMac用をダウンロードしただけなのですが。

その点、ご教示頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Vagrantの公式のダウンロードサイトよりMac用をダウンロードした

のですよね?
そして「vagrant_x.x.x.dmg」内のインストーラに従ってデフォルトの設定でインストールされた訳ですよね?

であれば /opt/vagrant 配下がインストール先として定義されていただけで、不思議はないのではないでしょうか?

その証拠に、dmg パッケージに同梱されている「uninstall.tool」の内容をテキストエディタで確認してみてください。
29,30行目に以下のように定義されています。

append my_files "/opt/vagrant" append my_files "/usr/local/bin/vagrant"

どの程度ご存知か分かりませんが、Mac OS X は BSD UNIX ベース のOSなので、ディレクトリ構成もその流儀に従っています。
そしてUnix系のOSでは、ユーザーが後から追加したアプリケーションが /opt 配下にインストールされるのはごく自然なことなのです。

同じUnix系のOSでもディストリビューションによって流儀が異なりますが、以下のページがご参考になるかもしれません。

各ディレクトリの役割を知ろう(ルートディレクトリ編)
FreeBSDとLinuxのディレクトリ構造一覧

以上、ご参考になれば幸いです。

投稿2015/08/01 07:18

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_natsui

2015/08/01 07:35 編集

回答有難うございます! ではインストールをすると下記の2つのパス上にインストールされるということでしょうか?それとも片方だけにインストールされる感じでしょうか? /usr/local/bin以下にはvagrantが見当たらなくて。 append my_files "/opt/vagrant" append my_files "/usr/local/bin/vagrant" その点ご教示頂けると有難いです! 上記リンクも参考にさせて頂きます!
pi-chan

2015/08/01 23:42 編集

`/opt` 配下は追加のアプリ本体のインストール先です。 しかし、この配下はデフォルトでは「コマンドサーチパス」に含まれていないので、コンソールから入力して利用する「コマンド」類は、パスの通ったディレクトリ配下へインストール(コピーまたはシンボリックリンク作成)されます。 コマンド類のパスの通ったインストール先には以下の3箇所がありますが、それぞれのザックリとした使い分けは(自分の理解に基づくので厳密ではないですが) ① /bin     ← (OSの)基本コマンド類 ② /usr/bin   ← ユーザープログラムのコマンド類 ③ /usr/local/bin ← ユーザーが(ソースからマニュアルで追加した)コマンド類 となっています。 そして一般的には③→②→①の順にコマンドを検索するようにPATHが設定されています。 Vagrant の場合、通常にインストールした直後には、以下のようにインストール(シンボリックリンク作成)されています。 $ ls -l /usr/bin/vagrant lrwxr-xr-x 1 root wheel 24 2 14 09:02 /usr/bin/vagrant@ -> /opt/vagrant/bin/vagrant ご指摘のように、/usr/local/bin/vagrant は存在していませんが、もし追加(オプション)でVagrant関連のコマンドを追加する場合はここにインストールされるはずなので、アンインストール(お掃除)の対象として定義されているのだと思います。
guest

0

アプリの作りの話から始める必要があるのかなと思います。

まず、いわゆるアプリにはグラフィカルなGUIアプリと
ターミナルでコマンドを実行するCUIアプリに大別できます。

MacでGUIアプリを作った場合、/Applicationsにいれることで、
アプリケーションの一覧やLaunchpadなどに現れるようになります。
ですので、ほとんどのアプリは/Applicationsに入れるようになっています。

しかし、CUIアプリは/Applicationsにいれても意味がありません。
なぜなら、ターミナルからコマンドを実行しようとしても、
/Applications配下にある各アプリについてコマンドがあるかを
確認しないためです。
ではどうするかというと、本体は全く別の場所において、コマンドのシンボリックリンクを
パスが通っている/usr/binまたは/usr/local/binに置く場合が多いです。
/usr/bin等にコマンドを置くと、ターミナルからコマンド名だけで
実行できるようになるからです。
ただし、/usr/bin等におくのはコマンドへのリンクのみで、
本体をどこに置くのかはアプリによって違います。
GUIアプリとしての機能もある場合は/Applicationsに一緒に置くものもあります。
システムに深く関わるものですと/System/Library配下に置く場合があります。(例えばJava)
UNIX/Linux由来のCUIアプリは/optに置く傾向があります。
/optはPOSIX(UNIX共通の決まり事、MacもPOSIXに準拠している)で
サードパーティーのアプリを置く場所として決めているからです。

では、Vagrantはどうかというと、VagrantはもともとRubyGemで
いれることから始まっており、UNIX/Linux由来のCUIアプリです。
そのため、POSIXの慣習に従って/optへ入れるようになっています。
なので本体は/opt/vagrantにあるわけです。
ただ、これだけですとターミナルからコマンドを実行できません。
(ターミナルは/opt/vagrantにvagrantがあるなんて知らないからです。)
追加で、/usr/local/bin/vagrantというシンボリックリンクを作成して、
本体の/opt/vagrant/bin/vagrantに向ける作りなっています。

投稿2015/08/01 12:21

編集2015/08/01 12:22
raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_natsui

2015/08/02 07:22

GUIとCUIアプリの一般的な所からご説明頂きありがとうございます! やっと何故vagrantが/opt以下に置かれるかが理解出来ました。 ちなみに自分がvagrantのコマンドが実行できるようにしたやり方として.bash_profileに以下の様にパスを通して使えるようにしたのですが export PATH=/opt/vagrant/bin:$PATH このやり方は適切な方法ではないのでしょうか?
raccy

2015/08/02 07:53

いいえ、間違いではありません。 "/opt/vagrant/bin"を見に行くのでも問題ありません。 vagrantのコマンドを"/usr/local/bin"に置くのは、 他のアプリケーションの多くが、同じように"/usr/local/bin"に置くからです。 そのため、Macではデフォルトで"/usr/local/bin"がPATHにありませんが、 ほとんどのユーザが追加している場合が多いです。 "/usr/local/bin"を使っているアプリが他にあれば、 共通してPATHに含めた方が楽ですが、 特になければ、"/opt/vagrant/bin"のみを指定しても問題ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問