Ist es möglich, das System-Ruby von Mac OS X neu zu installieren / zu reparieren, ohne das Betriebssystem komplett neu zu installieren?


15

Ist es möglich? Ich habe mindestens einmal in der Woche mit verschiedenen Problemen zu tun, seit sie beschädigt wurden oder so, besonders mit Homebrew.

Wenn es möglich ist, aber nur eine bessere Idee wäre, von einer sauberen Tafel auszugehen, lassen Sie es mich bitte wissen.


Meine PATH-Einstellungen: gist.github.com/506481
LBRapid

Von Ihrem Pfad aus deuten die / opt / local-Einträge darauf hin, dass Sie ebenfalls Macports haben. was zeigt welcher rubin
user151019

Ich habe Macports installiert, aber mit welchem ​​Ruby wird nur die rvm ruby ​​Version angezeigt. Die Probleme, auf die ich
stoße,

Antworten:


3

Nach meinem Verständnis - bitte korrigieren Sie mich, wenn ich falsch liege - müssen Sie nicht alles von Mac OS X neu installieren, um Ihr System Ruby neu zu installieren. Wie Sie vielleicht wissen, befindet sich der System Ruby in /System/Library/Frameworks/Ruby.framework/. Wenn dieser Ordner gelöscht oder beschädigt ist oder wenn die darauf verweisenden Symlinks gelöscht oder geändert werden, ist keine funktionierende System Ruby-Installation möglich.

Um dies zu beheben, versuchen Sie Folgendes:

  1. Legen Sie Ihre Mac OS X Installations-DVD ein
  2. Öffnen Sie den Ordner "Mac OS X Install DVD"
  3. Öffnen Sie den Ordner "Optionale Installationen"
  4. Öffnen Sie den Ordner Xcode Tools
  5. Öffnen Sie das XcodeTools-Paket. Dadurch wird das Xcode Tools-Installationsprogramm gestartet. Folge den Anweisungen.

Es tut auch nicht weh, den neuesten Xcode von http://developer.apple.com/technologies/xcode.html abzurufen

Vollständige Offenlegung: Ich habe diese Schritte ausgeführt. Ich bin mir ziemlich sicher, dass Ruby.framework wiederhergestellt wird, aber die Symlinks (normalerweise in / usr / bin) wurden nicht wiederhergestellt.


Diese Lösung ist ziemlich gut, und obwohl ich sie nicht befolgt habe, wurde sie schließlich von einem Kollegen vorgeschlagen. Am Ende habe ich einfach ruby ​​1.8.7 aus dem Quellcode nach / usr / local neu installiert und es dann mit einem Symlink versehen, wo es von Homebrew benötigt wurde. Ich brauchte nur RVM und Homebrew, um funktionsfähig zu sein, bis ich nächsten Monat einen neuen Computer bekomme. Also das reicht :) Danke für deine Antwort!
LBRapid

1
Könnten Sie dies bitte für Yosemite mit dem im AppStore installierten Bundle
aktualisieren

Ich bin mir nicht sicher, was du meinst. Darf ich vorschlagen, dass, wenn die obigen Schritte für Sie nicht funktionieren, (a) spezifischer sind oder (b) eine neue Antwort erstellen, die zeigt, was für Sie funktioniert hat, oder (c) eine neue Frage erstellen, die auf diese verweist.
David J.

Ich habe eine neue Frage mit den Details erstellt.
rraallvv

13

Wenn Sie Pacifist verwenden, können Sie Ruby einfach neu installieren.

  1. Legen Sie Ihre OS X-DVD ein
  2. Führen Sie Pacifist aus
  3. Wählen Sie "Apple Install Discs öffnen"
  4. Wählen Sie die Disc aus
  5. Suche "Ruby.framework"
  6. Rechtsklicke und wähle "Install to Default Location"

Dies wird Ruby neu installieren, um die Symlinks von / usr / bin so einzurichten, dass sie darauf verweisen. Verwenden Sie erneut Pacifist:

  1. Suche "Inhalt von BSD.pkg"
  2. Öffnen Sie: usr -> bin
  3. Wählen Sie die gewünschten Links und Dateien aus
    • Deckel
    • kapitulieren
    • erb
    • Frettchen-Browser
    • Juwel
    • gpgen
    • irb
    • mongrel_rails
    • Schienen
    • Rechen
    • rb-keygen
    • rdoc
    • rotes Tuch
    • ri
    • Rubin
    • testrb
    • update_rubygems
  4. Rechtsklicke und wähle "Install to Default Location"

Im Allgemeinen, wenn Sie herausfinden müssen, von welchem ​​Installationsprogramm eine Datei auf Ihrem System in einem Terminal stammt:

$ pkgutil --file-info /usr/bin/ruby
volume: /
path: usr/bin/ruby

pkgid: com.apple.pkg.BSD
pkg-version: 10.5.0.1.1.1188305148
install-time: 1203610823
uid: 0
gid: 0
mode: 120755

Das pkgid sollte Ihnen dann einen Hinweis geben, und dann finden Sie entweder das Installationsprogramm und führen es erneut aus oder verwenden Pacifist, um es selektiv auszuführen.

Sie können auch sehen, welche anderen Dateien in diesem Paket enthalten sind:

$ pkgutil --files com.apple.pkg.BSD
.
Library
Library/Documentation
Library/Documentation/Commands
Library/Documentation/Commands/grep
...

Ich habe festgestellt, dass der beste Weg, mit Ruby unter OS X umzugehen, darin besteht, Ihr System mit dem obigen Prozess auf den Standardzustand zu versetzen. Entfernen Sie alle MacPort, Fink oder Versionen, die Sie manuell kompiliert haben. Installieren Sie RVM und verwalten Sie damit die Installation neuerer Versionen.


Es stellte sich heraus, dass ich mein Ruby-System entfernt hatte und Probleme damit hatte, pow ( http://pow.cx ) auf meinem Mac zu installieren . Also habe ich Pacifist installiert und den Ratschlägen in diesem Beitrag gefolgt und bin wieder im Geschäft. Vielen Dank!


Pacifist (Version 3.2.17) bleibt beim Versuch, Ruby.framework auf Yosemite
rraallvv

3

Alter Beitrag, aber ich habe gerade von Ports zu Homebrew gewechselt, also ...

Für Homebrew-Probleme habe ich es gelöst, indem ich rvm und symlinking installiert habe. Wenn Sie also rvm installiert haben, können Sie beginnen, indem Sie Folgendes eingeben:

which ruby

mit der Ausgabe davon machen Sie so etwas wie:

ln -s /Users/username/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /usr/bin/ruby

1

Ich habe meine Ruby-Installation unter OSX durcheinander gebracht, aber ich habe diese GUI des RVM-Teams verwendet und es geschafft, sie mit geringem Aufwand und ohne Hacken auf einer CLI zu beheben

http://jewelrybox.unfiniti.com


-1

IMO Homebrew( http://brew.sh ) ist der beste Paketmanager für OS X.

So installieren Sie Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Dann

brew install ruby

Erledigt.


9
Um Ruby zu installieren, benutze Ruby, um es über Homebrew zu installieren ...
whirlwin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.