2 台の開発マシンがあり、どちらも Mac OS Mountain Lion を実行しています。HD にインストールしなければならないデスクトップの 1 つ (アプリケーションとシステムは SD にインストールされ、ユーザー アカウントは標準でインストールされます)。特別なリンクなどを追加する必要があります。これらの方法は、独自のバグのホストにつながります。私の質問は、ある hd に usr/local があり、別の hd にユーザー アカウントがあると、この問題が発生するのはなぜですか?
4 に答える
私はmotleydevと同じ問題を抱えていましたが、スペースが赤いニシンであることが判明しました。代わりに、RVM スクリプトが「/Volumes/Macintosh HD」をどこかにハードコーディングしているようです。私は次の実験によってこれを結論付けました:
元のパーティション (「Macintosh HD」) と、作業中の新しいパーティション (「Macintosh HD Rawr」) の 2 つのパーティションがありました。(rawr パーティションを作成するとき、以前は明らかに Macintosh HD が常に機能していたので、パーティション名にスペースを入れても問題ないと思っていました)
実行時の初期エラーrvm install ruby-1.9.3-p484 --verify-downloads 1:
/bin/sh: /Volumes/Macintosh: No such file or directory
make: *** [enc] Error 127
「/Volumes/Macintosh\ HD\ Rawr」の名前を「/Volumes/Macintosh」に変更しようとしたとき (シンボリック リンクはその/Volumes/Macintosh -> /
ままにして、Finder で名前を変更しました)、インストールは失敗しましたが、別のエラーが発生しました。
/bin/sh: /Volumes/Macintosh: source: no such file or directory
make: *** [enc] Error 127
次に、古いボリュームの名前を「/Volumes/Macintosh\ HD」から「/Volumes/MacintoshHD」に変更しましたが、インストールはまだ失敗していましたが、別のエラーが発生しました。
command(7): ./configure --prefix=/opt/twitter/rvm/rubies/ruby-1.9.3-p484 --with-opt-dir=/opt/twitter/opt/libyaml:/opt/twitter/opt/readline:/opt/twitter/opt/libksba:/opt/twitter/opt/openssl --without-tcl --without-tk --disable-install-doc --enable-shared
configure: WARNING: unrecognized options: --without-tcl, --without-tk
checking build system type... x86_64-apple-darwin13.3.0
checking host system type... x86_64-apple-darwin13.3.0
checking target system type... x86_64-apple-darwin13.3.0
checking whether the C compiler works... no
configure: error: in `/opt/twitter/rvm/src/ruby-1.9.3-p484':
configure: error: C compiler cannot create executables
See `config.log' for more details
config.log を見ると、次のエラーが見つかりました。
xcrun: error: active developer path ("/Volumes/Macintosh HD/Applications/Xcode.app/Contents/Developer") does not exist, use xcode-select to change
この時点ではどちらのボリュームも「Macintosh HD」という名前ではないため、これは RVM コードのどこかにハードコードされていることを示しています。
案の定、目的のパーティションを「/Volumes/Macintosh\ HD」に変更したことで、rvm はその役割を終えることができました。
ほとんどのツールは名前に含まれるスペースを認識しないと常に想定しているため、ユーザー名にスペースが含まれることはありません。たとえば、これらの 2 つの行を比較してください (これらは私のセットアップでの実際の名前です)。
source /Volumes/MySSD/Users/sergio/.rvm/scripts/rvm
source /Volumes/Macintosh HD/Users/sergio/.rvm/scripts/rvm
2 行目は、「source: no such file or directory: /Volumes/Macintosh」というメッセージで失敗します。これは、このパスがスペースで区切られた 2 つの引数として解釈されるためです。機能させるには、パスを引用符で囲む (またはバックスラッシュでスペースをエスケープする) 必要があります。私が覚えている限りでは、RVM スクリプトには、パスが引用符で囲まれていないコマンドが 1 つか 2 つ含まれています。デュアル ディスク セットアップに移行するときに、自分で対処する必要がありました。今は詳細を思い出せませんが、これが問題の原因である可能性が高く、パスが正しく解釈されていません。
指示に従ってください:
あなたは満足のいくスペースユーザーの 1 人 (ホーム ディレクトリ名) のようです。RVM はまだ完全には準備ができていません。次のトリックを使用して修正してください。
sudo ln -s "$HOME/.rvm/" /$USER.rvm
echo "export rvm_path=/$USER.rvm" >> "$HOME/.rvmrc"
そして、再びインストールを開始します。