2つの方法でRubyアップデートが機能しない

2つの方法でRubyアップデートが機能しない

私はこれを使って Mac 10.6.8 に Ruby バージョン 1.9.3 をインストールしようとしました:

$ \curl -L https://get.rvm.io | bash -s stable --ruby

Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ rvm install ruby-1.9.3-p362
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.6/i386/ruby-1.9.3-p362.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system.............................................
Installing required packages: autoconf, automake, libtool, pkgconfig, libiconv, libyaml, libffi, readline, libksba, openssl, curl-ca-bundle, sqlite3, zlib, gdbm, ncurses...
Error running 'requirements_osx_port_libs_install autoconf automake libtool pkgconfig libiconv libyaml libffi readline libksba openssl curl-ca-bundle sqlite3 zlib gdbm ncurses',
please read /Users/oskarniburski/.rvm/log/1380238189_ruby-1.9.3-p362/package_install_autoconf_automake_libtool_pkgconfig_libiconv_libyaml_libffi_readline_libksba_openssl_curl-ca-bundle_sqlite3_zlib_gdbm_ncurses.log
Requirements installation failed with status: 1.

私のバージョン:

Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]

ログファイルの出力:

Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ cat /Users/oskarniburski/.rvm/log/1380238189_ruby-1.9.3-p362/package_install_autoconf_automake_libtool_pkgconfig_libiconv_libyaml_libffi_readline_libksba_openssl_curl-ca-bundle_sqlite3_zlib_gdbm_ncurses.log
[2013-09-26 19:30:17] requirements_osx_port_libs_install
requirements_osx_port_libs_install () 
{ 
    __rvm_try_sudo port install "$@" || { 
        typeset ret=$?;
        rvm_warn "There were package installation errors, make sure to read the log.";
        return $ret
    }
}
current path: /Users/oskarniburski
command(16): requirements_osx_port_libs_install autoconf automake libtool pkgconfig libiconv libyaml libffi readline libksba openssl curl-ca-bundle sqlite3 zlib gdbm ncurses
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
--->  Computing dependencies for autoconfError: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
There were package installation errors, make sure to read the log.

その後、MacPorts を使用してインストールを試みましたが、やはり動作しませんでした。何かアイデアはありますか?

Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ sudo port install ruby19
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
--->  Computing dependencies for ruby19Error: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?

これが今の私の道です:

/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/X11/bin:/Users/oskarniburski/.rvm/bin:/usr/X11R6/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/Users/oskarniburski/.rvm/bin

'which -a make' もlocate -b '\make' も見つかりません。前者では which コマンドが見つかりません。後者では、locate:illegal オプション --b が見つかりません。

答え1

問題1:make

最初の問題は、Rubyをコンパイルする必要があることです。これは通常、makeこれは から設定を読み取りMakefile、コンパイラを呼び出します。OSX ではmakeとともにインストールされ、予想される場所ではなく にXcodeツールがインストールされます。このディレクトリはデフォルトでは存在しないため、その中の実行可能ファイルはシェルによって検出されません。/Developer/usr/bin/usr/bin$PATH

この問題を解決するには、次の行を追加します~/.bash_profile(必ずexport $PATH行の前に追加してください)。

PATH="/Developer/usr/bin:$PATH" 

ただし、これはまだルートとして実行されているコマンド (たとえばsudo) からはアクセスできません。このディレクトリをデフォルト パスに追加することをお勧めします。 を開き/etc/profile、そこにパスを定義する行を見つけて、そこにディレクトリを追加します。私は Linux システムを使用していますが、次のようになります。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

ディレクトリを末尾に追加すると、次のようになります。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/Developer/usr/bin"

デフォルトを変更したくない場合は、makeデフォルトにあるディレクトリにリンクできます$PATH

 sudo ln -s /Developer/usr/bin/make /usr/bin

含まれているすべてのものに対してこれを実行する必要がある/Developer/usr/binため、デフォルトを変更することを強くお勧めします。

問題2:新しいバージョンを見つける

この時点で、Rubyをインストールできるはずです。

$ sudo port install ruby19

正常に終了しますが、Ruby のバージョンが更新されていないようです。

$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]

それの訳は、デフォルトでは、portそのファイルを にインストールし/opt/local、Ruby 実行可能ファイルを としてインストールします/opt/local/bin/ruby1.9。 これは、 には存在しないもう 1 つのディレクトリです。$PATHしたがって、上記のプロセスを繰り返して を に追加する/opt/local/binか、実行可能ファイルを パスにあるディレクトリに$PATHリンクすることができます。を に追加すると、 で v1.8 を実行でき、 で v1.9を実行できるようになります。 既存のスクリプトをすべて v1.9 に切り替えたい場合は、 を新しいバージョンにポイントすることをお勧めします。ruby1.9/opt/local/bin$PATHrubyruby1.9/usr/bin/ruby

の古いバージョンは/usr/bin実際にはシンボリックリンクです:

$ ls -l /usr/bin/ruby 
rwxr-xr-x 1 root wheel 76 25 Jun 2010 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby

つまり、安全に削除して、新しいバージョンへのリンクに置き換えることができます。

$ sudo rm /usr/bin/ruby; sudo ln -s  /opt/local/bin/ruby1.9  /usr/bin/ruby

元に戻して make run v1.8 を実行したい場合はruby、逆のコマンドを実行するだけです。

$ sudo rm /usr/bin/ruby; sudo ln -s  /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby  /usr/bin/ruby

すべてがうまくいけば、デフォルトはrubyv1.9 になります。

$ ruby --version
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin10]

答え2

この gist をご覧ください。Mountain Lion にインストールする方法が示されています。

MacPorts または Homebrew の使用方法を詳しく説明します。これが完了したら、 を使用してインストールする方法を示しますrvm

関連情報