2010-12-30 3 views

Antwort

2

Wahrscheinlich in verschiedenen Verzeichnissen, weil der Benutzer "root" ein anderes Konto und einen anderen Pfad als Sie hat.

Der Root-Zugriff über sudo ermöglicht das Schreiben der Datei in die Edelsteinumgebung für einen Ruby in den Verzeichnissen /usr/bin oder /usr/local/bin. (Gem wird die Dateien nicht dort ablegen, aber sie werden einem Ruby in einem dieser Verzeichnisse zugeordnet.)

Sie haben nicht standardmäßig Zugriff auf diese Bereiche, also wenn Sie versuchen zu laufen gem install, und hatte nur einen System Ruby, würden Sie wahrscheinlich Berechtigungsfehler erhalten und der Versuch sollte fehlschlagen.

+0

Danke für die Antwort! Wie wäre es mit dem Paket installieren? – PeterWong

+0

Ich habe keine Erfahrung mit 'bundle' direkt, aber es muss nach den gleichen Regeln wie alle anderen Apps spielen. Es kann in Bereiche schreiben, für die Sie eine Berechtigung haben. Wenn Sie als Sie selbst laufen, wird es in Bereichen Ihrer Festplatte sein, die Ihnen gehören. Wenn Sie als 'sudo' oder 'su' root ausführen, nehmen Sie die Rechte von root an und können 'fast überall' schreiben. –

+0

Re: Bundler: Nicht genau. Siehe meine Antwort; Bundler installiert Edelsteine ​​in das System. – vonconrad

1

Der Zinn-Mann antwortete sudo vs. nicht sudo, so wie für Bündler ...

Bündler installieren Edelsteine ​​auf den Systempfad (ähnlich, wenn sie von sudo installiert worden sind) - zumindest auf OSX, obwohl ich mir ein anderes Betriebssystem vorstellen würde.

+1

Ich würde empfehlen, den Abschnitt "SUDO USAGE" in den Bundle-Dokumenten [bundle-install] (http://gembundler.com/man/bundle-install.1.html) zu lesen. Bundle verhält sich wie jede andere App, die sich gut verhält, und übernimmt die Berechtigungen des aufrufenden Benutzers. Wenn es in ein Systemverzeichnis schreiben muss, muss es um Erlaubnis fragen, es kann es nicht selbst tun. –

+0

Also ist 'bundle install' ähnlich wie' sudo gem install', oder? BTW, heute habe ich einfach alles neu installiert und das env erneut eingerichtet. Ich fand, dass ich Juwel ohne 'sudo' nicht installieren konnte, andernfalls wird eine Meldung angezeigt, dass es keine Erlaubnis hat zu schreiben ...... – PeterWong

+0

@ the Tin Man, ich fand' --path' und '- System "in den von Ihnen erwähnten Dokumenten. Entsprechen sie "Gem Install" und "Sudo Gem Install"? – PeterWong