ruby1.8.4をmake -n installしたらインストールされるファイルの一覧が出力されるわけではないのでしょうか?

----------
[ruby-1.8.4]$ make -n install
./miniruby ./instruby.rb --dest-dir="" --make="make" --mflags="-n" --make-flags="n" --mantype="doc"
./miniruby ./ext/extmk.rb --dest-dir="" --make="make" --mflags="-n" --make-flags="n" --extout=".ext" --extension --extstatic -- install

回答の条件
  • 1人10回まで
  • 登録:2006/03/26 23:00:32
  • 終了:2006/03/27 20:43:20

ベストアンサー

id:pyopyopyo No.2

pyopyopyo回答回数363ベストアンサー獲得回数922006/03/27 05:44:13

ポイント100pt

make -n install をしても ファイルの一覧は得られません.

make の"-n" オプションには「実行するコマンドの表示だけを行い、実際の実行を行わない。」という意味があります.詳細は,make のマニュアルをご覧下さい.

http://www.linux.or.jp/JM/html/GNU_make/man1/make.1.html

つまり,

$ make -n install

は,インストール時のコマンドの表示だけを行います.


インストールされるファイルの一覧を調べるには,

  • 適当なディレクトリ(たとえば /tmp/test)に一度インストールする.
  • find などで別途ファイルの一覧を取る

という手順を良く使います.

具体的には以下のようにします.

$ make install DESTDIR=/tmp/test
$ cd /tmp/test
$ find 

これで,./usr/local/bin/ruby などのファイルの一覧が出ると思います.

実際には /tmp/test 以下の内容が / 直下にコピー(つまりインストール)されます.なので,実際には /usr/local/bin/ruby がインストールされることになります.

このDESTDIRを使う方法は, ./configure して make するタイプのソースコードであれば大抵使えます.

id:afternoontea

調べてみたらこっち(DESTDIR)のほうがインストール内容確認の一般的な方法みたいですね。

ありがとうございました。

2006/03/27 20:38:46

その他の回答(1件)

id:practicalscheme No.1

practicalscheme回答回数157ベストアンサー獲得回数422006/03/27 04:13:02

ポイント100pt

Rubyは、make installの処理の多くをRuby自身で行います。

したがって、makeにわかるのは「Rubyを使ってインストール処理を起動する」ということだけです。make -n installはRuby自身を起動することはしませんから、表示されるのは質問にあるようなコマンドラインだけになります。

インストール先ディレクトリに書き込むことなくインストールの様子を実際に調べたければ、DESTDIRを指定するという手があります:

make DESTDIR=/tmp/ruby install

こうすると全てのファイルが $(DESTDIR)$(prefix) 以下にインストールされるので (この場合、デフォルトでconfigureしていれば /tmp/ruby/usr/local 以下) 表示されるディレクトリから /tmp/ruby を除けばどこに何がインストールされるかわかります。その後で rm -rf /tmp/ruby すれば良いでしょう。

./miniruby ./instruby.rb --dest-dir="/tmp/ruby" --make="make" --mflags="" --make-flags="DESTDIR=/tmp/ruby" --mantype="doc"

mkdir -p -m 755 /tmp/ruby/usr/local/bin /tmp/ruby/usr/local/lib /tmp/ruby/usr/local/lib/ruby/1.8 /tmp/ruby/usr/local/lib/ruby/1.8/i686-linux /tmp/ruby/usr/local/lib/ruby/site_ruby/1.8 /tmp/ruby/usr/local/lib/ruby/site_ruby/1.8/i686-linux

install -c -p -m 0755 ruby /tmp/ruby/usr/local/bin/ruby

install -c -p -m 0644 libruby-static.a /tmp/ruby/usr/local/lib

install -c -p -m 0644 config.h /tmp/ruby/usr/local/lib/ruby/1.8/i686-linux

install -c -p -m 0644 rbconfig.rb /tmp/ruby/usr/local/lib/ruby/1.8/i686-linux

install -c -p -m 0755 bin/rdoc /tmp/ruby/usr/local/bin/rdoc

....

id:afternoontea

一般的な方法は使えないのですね。

2006/03/27 20:25:42
id:pyopyopyo No.2

pyopyopyo回答回数363ベストアンサー獲得回数922006/03/27 05:44:13ここでベストアンサー

ポイント100pt

make -n install をしても ファイルの一覧は得られません.

make の"-n" オプションには「実行するコマンドの表示だけを行い、実際の実行を行わない。」という意味があります.詳細は,make のマニュアルをご覧下さい.

http://www.linux.or.jp/JM/html/GNU_make/man1/make.1.html

つまり,

$ make -n install

は,インストール時のコマンドの表示だけを行います.


インストールされるファイルの一覧を調べるには,

  • 適当なディレクトリ(たとえば /tmp/test)に一度インストールする.
  • find などで別途ファイルの一覧を取る

という手順を良く使います.

具体的には以下のようにします.

$ make install DESTDIR=/tmp/test
$ cd /tmp/test
$ find 

これで,./usr/local/bin/ruby などのファイルの一覧が出ると思います.

実際には /tmp/test 以下の内容が / 直下にコピー(つまりインストール)されます.なので,実際には /usr/local/bin/ruby がインストールされることになります.

このDESTDIRを使う方法は, ./configure して make するタイプのソースコードであれば大抵使えます.

id:afternoontea

調べてみたらこっち(DESTDIR)のほうがインストール内容確認の一般的な方法みたいですね。

ありがとうございました。

2006/03/27 20:38:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません