Laufen ' sudo gem list --local
' und ' gem list --local
' geben mir unterschiedliche Ergebnisse. Mein Edelsteinpfad ist auf meinen Home-Ordner festgelegt und enthält nur die Edelsteine von ' gem list --local
'.
Es ist wahrscheinlich nicht gut, Gems in verschiedenen Verzeichnissen auf meinem Computer installiert zu haben. Sollte ich also den Gem-Pfad anders einstellen und sollte ich ihn immer verwenden, sudo
wenn ich etwas installiere?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
~ / .bash_profile ist leer.
ruby-on-rails
ruby
macos
rubygems
raphael_turtle
quelle
quelle
sudo gem install rails
stattdessen verwendet habegem install rails
.sudo
ist eine geladene Waffe, die auf Ihren Fuß gerichtet ist. Wenn Sie es verwenden, ohne zu verstehen, was es tut und wie es sich auf Ihr System auswirken kann, drücken Sie den Auslöser mit geschlossenen Augen. Sie könnten ein Loch in Ihren Fuß schießen, Sie könnten es nicht, aber so oder so möchten Sie das Risiko nicht eingehen, es sei denn, Sie wissen, wie Sie den Schaden rückgängig machen können. Verwenden vonsudo
Schreibvorgängen in den systemeigenen Ruby, der unter Mac OS von Apple für den eigenen Gebrauch installiert wurde. Wir können darauf zurückgreifen, aber wenn wir das Falsche ändern, kann dies den Code beschädigen. Aus diesem Grund installieren wir von der Quelle oder verwenden etwas anderes, um es zu installieren, wo wir es sicher optimieren können.Antworten:
Im Gegensatz zu allen anderen Posts empfehle ich, NICHT
sudo
bei der Installation von Edelsteinen zu verwenden.Stattdessen empfehle ich Ihnen, RVM zu installieren und ein glückliches Leben mit tragbaren Edelsteinhäusern und verschiedenen Ruby-Versionen zu beginnen, die alle unter einem Dach leben.
Für die Uneingeweihten aus der Dokumentation :
Der Grund, warum die Installation von Edelsteinen mit
sudo
schlechter ist als nur,gem install
ist, dass die Edelsteine für ALLE BENUTZER als installiert werdenroot
. Dies kann in Ordnung sein, wenn Sie die einzige Person sind, die die Maschine verwendet, aber wenn Sie dies nicht tun, kann dies zu Verrücktheit führen.Wenn Sie sich entscheiden, alle Ihre Edelsteine wegzublasen und erneut zu beginnen, ist es viel einfacher und sicherer, dies als Nicht-Root-Benutzer zu tun.
Wenn Sie sich entscheiden , die Sie verwenden möchten ,
RVM
dann verwendensudo
alle Arten von Seltsamkeit verursachen , weil jede Sie Ruby - Version installieren , durchRVM
seine eigene GEM_HOME hat.Es ist auch schön, wenn Sie Ihre Entwicklungsumgebung so nah wie möglich an Ihre Produktionsumgebung bringen können und Sie in der Produktion höchstwahrscheinlich Edelsteine als Nicht-Root-Benutzer installieren.
quelle
Sie können Edelsteine auch in Ihrer lokalen Umgebung (ohne
sudo
) mit installierenIch empfehle dies, damit Sie nicht mit Ihrer Konfiguration auf Systemebene herumspielen, selbst wenn es sich um einen Einzelbenutzercomputer handelt.
Sie können überprüfen, wohin die Edelsteine gehen, indem Sie sich die Edelsteinpfade mit ansehen
gem environment
. In meinem Fall ist es "~ / .gem / ruby / 1.8".Wenn Sie einige Binärdateien aus lokalen Installationen benötigen, die Ihrem Pfad hinzugefügt wurden, können Sie Ihrem bashrc Folgendes hinzufügen:
(von http://guides.rubygems.org/faqs/#user-install )
quelle
rake install
und um die Sudo-Isse zu reparieren, musste ich das/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rb
Hinzufügen--user-install
dort manuell patchen . Ich kann keine bessere Lösung finden, da anscheinendrake install
keine zusätzlichen Parameter akzeptiert werden.Besser noch,
--user-install
fügen Sie Ihre ~ / .gemrc-Datei ein, damit Sie sie nicht jedes Mal eingeben müssenquelle
Falls Sie
Fügen Sie Folgendes hinzu
.bash_profile
:Öffnen Sie eine neue Registerkarte in Terminal OR
source ~/.bash_profile
und los geht's!quelle
Verwandte (für Bundler-Benutzer), wenn Sie eine leichtere Alternative zu RVM suchen, die alles in ein benutzerspezifisches, bekanntes Verzeichnis legt, empfehle ich die Verwendung von:
Wenn Sie Edelsteine an derselben Stelle installieren möchten
wird sie
.gem/ruby/RUBYVERSION
in Ihrem Homedir installieren . (Siehe den anderen Kommentar zu dieser Frage über--user-install
.)Dadurch werden die Edelsteine für usw. sichtbar
gem list
, deinstallierbar übergem uninstall
usw., ohne dass einsudo
Zugriff erforderlich ist . Von Gem oder Bundler installierte ausführbare Skripte können durch Hinzufügen in Ihren Pfad eingefügt werdenzu deinem
$PATH
.gem
selbst sagt Ihnen dies, wenn es nicht eingestellt ist, wenn Sie dies tungem install --user-install
.quelle
installiert Ihr Juwel global , dh es steht allen Benutzerkontexten zur Verfügung.
quelle
Sie können Gems in einem bestimmten Ordner (Beispiel Vendor /) in Ihrer Rails-App installieren, indem Sie:
quelle