Ich habe versucht, Ruby Version 1.9.3 hiermit auf meinem Mac 10.6.8 zu installieren:
$ \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.
Meine Version:
Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
Ausgabe der Logdatei:
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.
Und dann habe ich versucht, die Installation über MacPorts durchzuführen, aber das hat auch nicht funktioniert. Irgendwelche Ideen?
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?
Hier ist mein aktueller Weg:
/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/X11/bin:/Benutzer/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:/Benutzer/oskarniburski/.rvm/bin
Weder 'which -a make' noch locate -b '\make'. Beim ersten Befehl wurde der Befehl which nicht gefunden, beim zweiten die Option locate:illegal --b
Antwort1
Problem 1:make
Das erste Problem ist, dass Ruby kompiliert werden muss und das geschieht normalerweise durchmake
das die Einstellungen von a liest Makefile
und dann den Compiler aufruft. Unter OSX make
wird es mit installiert, Xcode
das seine Tools in installiert und /Developer/usr/bin
nicht dort, /usr/bin
wo man es erwarten würde. Dieses Verzeichnis ist nicht im Standardverzeichnis, $PATH
daher werden darin enthaltene ausführbare Dateien von der Shell nicht gefunden.
Sie können dies für Ihren Benutzer beheben, indem Sie diese Zeile hinzufügen ~/.bash_profile
(achten Sie darauf, sie vor export $PATH
der Zeile hinzuzufügen):
PATH="/Developer/usr/bin:$PATH"
Allerdings ist dies weiterhin nicht für Befehle zugänglich, die als Root ausgeführt werden ( sudo
z. B. mit). Ich empfehle, dieses Verzeichnis zum Standardpfad hinzuzufügen. Öffnen Sie /etc/profile
, suchen Sie dort die Zeile, die den Pfad definiert, und fügen Sie das Verzeichnis hinzu. Ich verwende ein Linux-System, aber es sollte ungefähr so aussehen:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Fügen Sie einfach das Verzeichnis am Ende hinzu, sodass es folgendermaßen aussieht:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/Developer/usr/bin"
Wenn Sie die Vorgabe nicht ändern möchten, können Sie make
auf ein Verzeichnis verlinken, das sich in der Vorgabe befindet $PATH
:
sudo ln -s /Developer/usr/bin/make /usr/bin
Sie müssen dies für alles tun, was darin enthalten ist. /Developer/usr/bin
Ich empfehle Ihnen daher dringend, die Standardeinstellung zu ändern.
Problem 2: Die neue Version finden
An diesem Punkt sollten Sie in der Lage sein, Ruby mit zu installieren
$ sudo port install ruby19
Das wird korrekt beendet, aber Ihre Ruby-Version scheint nicht aktualisiert zu sein:
$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
Das ist weil,standardmäßig, port
installiert seine Dateien in /opt/local
und installiert Ihre Ruby-Ausführdatei als /opt/local/bin/ruby1.9
. Noch ein Verzeichnis, das nicht in Ihrem ist $PATH
. Sie können also entweder den obigen Vorgang wiederholen und /opt/local/bin
zu Ihrem hinzufügen $PATH
oder die Ausführdatei mit einem Verzeichnis verknüpfen ruby1.9
, das in Ihrem Pfad liegt. Wenn Sie /opt/local/bin
zu Ihrem hinzufügen $PATH
, können Sie v1.8 mit ruby
und v1.9 mit ausführen ruby1.9
. Wenn Sie möchten, dass alle Ihre vorhandenen Skripte auf v1.9 umgestellt werden, empfehle ich Ihnen, /usr/bin/ruby
auf die neue Version zu verweisen.
Die alte Version /usr/bin
ist eigentlich ein symbolischer Link:
$ 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
Das heißt, Sie können es bedenkenlos löschen und durch einen Link zur neuen Version ersetzen:
$ sudo rm /usr/bin/ruby; sudo ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby
Wenn Sie jemals zurückkehren und ruby
v1.8 ausführen möchten, führen Sie einfach den umgekehrten Befehl aus:
$ sudo rm /usr/bin/ruby; sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby
Wenn alles gut gegangen ist, ruby
ist Ihre Standardeinstellung jetzt v1.9:
$ ruby --version
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin10]
Antwort2
Schauen Sie sich diesen Überblick an. Zeigt, wie man es für Mountain Lion installiert.
Zeigt, wie man entweder MacPorts oder Homebrew verwendet. Sobald Sie das erledigt haben, wird gezeigt, wie man es mit installiert rvm
.