Ruby-Update funktioniert mit zwei Methoden nicht

Ruby-Update funktioniert mit zwei Methoden nicht

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 durchmakedas die Einstellungen von a liest Makefileund dann den Compiler aufruft. Unter OSX makewird es mit installiert, Xcodedas seine Tools in installiert und /Developer/usr/binnicht dort, /usr/binwo man es erwarten würde. Dieses Verzeichnis ist nicht im Standardverzeichnis, $PATHdaher 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 $PATHder Zeile hinzuzufügen):

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

Allerdings ist dies weiterhin nicht für Befehle zugänglich, die als Root ausgeführt werden ( sudoz. 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 makeauf 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/binIch 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, portinstalliert seine Dateien in /opt/localund 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/binzu Ihrem hinzufügen $PATHoder die Ausführdatei mit einem Verzeichnis verknüpfen ruby1.9, das in Ihrem Pfad liegt. Wenn Sie /opt/local/binzu Ihrem hinzufügen $PATH, können Sie v1.8 mit rubyund 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/rubyauf die neue Version zu verweisen.

Die alte Version /usr/binist 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 rubyv1.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, rubyist 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.

verwandte Informationen