- ベストアンサー
Linux アプリケーションのインストールについて
Linuxにアプリケーションをソースコードからインストールする場合、 Configureのとき--prefix=(/usr/local/...)のオプションをつける場合がありますが、これをつけるなにかメリットはあるのでしょうか。 このオプションをつけなくてもインストールは可能なのですが。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>実は、アプリケーションを作るのではなく、オープンソースのソフトを使う方です。(カテゴリがちょっと違ったかもしれません) カテゴリは違いますね。 本来だったら OS: http://oshiete.goo.ne.jp/category/233/ の方でしょう。 >オープンソースのソフトをインストールする際 ここにも恐らく勘違いがあると思います。 「レポジトリ提供のバイナリ」ってのは、その殆どが「オープンソースのソフト」をディストロ提供側で、ユーザーの手間を削減する意味で、事前にビルドしたもの、です。 つまり、「オープンソースのソフト」と言うのは、別に「ソースファイルの形式"のみで"提供されている」って意味じゃありません。 「望めば必ずソースコードが入手出来る」と言う意味です。バイナリ形態だろうと何だろうと、この定義を満たせば「オープンソース」なんですよ。 恐らく、前提で把握すべき概念に対して勘違いしていると思われます。 >添付のREADMEファイルでは、./configureでよいと書かれているのですが、このソフトを使っているブログなどのサイトでは、/usr/localにインストール用のディレクトリを作成して、--prefixオプションでこのディレクトリを指定しています。 これはこう言う意味です。 基本的に./configureで良い、と書かれている場合はそれに従えば良いんですが……。 ところが、ディストロによって、 ・提供アプリケーションは全て/usr/binに突っ込む形式のもの…(例:Debian系) ・ディストロが用意したOS関連/直結のアプリは/usr/binにあるが、ユーザーが独自にインストールしようとしたアプリケーションは(レポジトリ経由の提供バイナリも含めて)/usr/local/binに突っ込む形式のもの……(例:RedHat系) と言う二つの大きな「流儀」があります。 そうすると、そもそもその「ソフトウェア製作者」がどっちの形式を念頭に入れて、と言うより、もっと言うと「どっちのディストロのOSを使ってソフトウェアを製作したのか?」それが鍵となってくるんです。 例えば、Debian系ユーザーだったら/usr/binに突っ込む事を念頭に入れてソフトウェアを製作した、けどインストールする側のユーザーが同じディストロを使ってるとは限らないんですよね。 その「このソフトを使っているブログなどのサイト」のユーザーが作成者が使ってるのと同じOSを使ってなかった、ってのが一番簡単に考えられる回答でしょう。 これは野良ビルドでは結構起こる事です。ソフトウェア製作者はmakefileを作るとき「自分が使ってるOS」をベースにして考えるのは良くある事です。従って、システムが若干違っただけで「××と言うディレクトリが見つからない。configureが失敗しました」と言うエラーを目にする事になります。「それを避けるための」--prefixオプションなんです。 これは例えば、RedHat系ディストロのユーザーが書いたソフトウェアを(過去の)Ubuntuでビルドしようとして上手く行かなかった、なんて事を僕も経験してます。元のソフトが/usr/local/binにインストールされるのを念頭においてるのに、Ubuntuにはそもそも/usr/localと言うディレクトリ自体が存在しなかった、とか。最近この手のconfigureの不具合を回避する為か、Ubuntuにも/usr/localディレクトリが出来ましたけどね。 まあ、そう言った「互換性問題」の為に--prefixオプションが存在するのです。
その他の回答 (1)
- cametan_42
- ベストアンサー率62% (162/261)
デフォルトではほぼ付ける必要性がありません。 --prefixオプションは、そうですねえ……。 例えば、今みたいにレポジトリが完備されているディストリビューションが殆どの中で、ディストロ提供側が用意したバイナリのインストールが可能で、ほぼそれでまかなえる場合、/usr/binとか/usr/local/binに自分でビルドしたソフトウェアを追加した時、「パッケージ管理システム」が誤動作したりする可能性がある、んです。 そう言う時、野良ビルドしたソフトウェアを/usr/binとか/usr/local/binなんかじゃなくって、例えば/opt以下に突っ込む、とか言う流儀があるんですね。そう言うディレクトリがあれば、ですけど。 そう言う時、ディスティネーション(インストール先)を、通常想定されている/usr/binとか/usr/local/binから変更する必要性が出てくる、んです。例えば/opt/binとかに。 「その為の」--prefixですね。
お礼
ご返信ありがとうございます。 実は、アプリケーションを作るのではなく、オープンソースのソフトを使う方です。(カテゴリがちょっと違ったかもしれません) 詳しくは、オープンソースのソフトをインストールする際、添付のREADMEファイルでは、./configureでよいと書かれているのですが、このソフトを使っているブログなどのサイトでは、/usr/localにインストール用のディレクトリを作成して、--prefixオプションでこのディレクトリを指定しています。 こうすることのメリット、例えば、アンインストールの時このディレクトリを削除するだけでよいとか、このディレクトリのバックアップをとっておけばすぐに復帰できるとかのメリットがあるのかなと思ったのですが。
お礼
ご返答ありがとうございます。 このソフトのREADMEファイルをよく見るとRedHat系で、参考にしたサイトではUbuntuを使っていました。 私もUbuntuを使っているので、なぜかなとふしぎに思っていたのですが、疑問が解消されました。 ありがとうございました。