人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: afternoontea
●カテゴリ:コンピュータ
✍キーワード:Dir DOC make Ruby インストール
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● practicalscheme
●100ポイント

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

....

◎質問者からの返答

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


2 ● pyopyopyo
●100ポイント ベストアンサー

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

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

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

つまり,

$ make -n install

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


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

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

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

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

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

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ