Effektiver Unterschied zwischen “gem install --bindir ~ / path / to / folder” und “--user-install” in Ruby

1195
jsejcksn

Im Moment habe ich keine Lust, Ruby zu lernen, aber ich möchte nur wissen, worin der Unterschied besteht gem install --bindir ~/path/und gem install --user-installsolange jeder der Wege in meinem ist $PATH.

2

1 Antwort auf die Frage

3
JakeGould

Sehen Sie sich die Ruby GEM-Befehlsreferenz hier an :

-n, -​-bindir DIR - Directory where binary files are located  -​-[no-]user-install - Install in user’s home directory instead of GEM_HOME. 

Als Endanwender, der Ruby verwendet, würden Sie effektiv und operativ keinen Unterschied bemerken, wenn sich die Dateipfade in Ihrem Ordner befinden $PATH. Jeder Befehl behandelt jedoch eindeutig einen anderen Aspekt des Dateisystems einer Ruby GEM-Installation.

- -bindir

-​-bindirbezieht sich auf das binary directory. Viele Ruby GEMS installieren Ruby-Skriptdateien als Teil ihrer Kernbibliotheksfunktion, installieren jedoch auch eine "Binärdatei" als Teil ihres Installationsprozesses. Das heißt, wenn Sie ein Ruby-Programmierer sind, möchten Sie möglicherweise ein Ruby-GEM installieren, damit Sie in Ihrem eigenen benutzerdefinierten Code einen verwertbaren Verweis auf den Kerncode finden können. Neben den Ruby GEM-Bibliotheksdateien wird jedoch auch eine Binärdatei installiert, die eine gleichwertige oder „Hilfsfunktion“ ausführt. Aus Sicht der Dateisystemverwaltung möchten einige Benutzer diese Binärdateien möglicherweise in einem separaten Verzeichnis anstelle des Standardverzeichnisses von Ruby GEMs installieren.

- -user-install

So, während -​-bindires eine Option zu steuern, wo binäre Dateien, die mit Ruby - Gems installiert werden, -​-user-installist eine Handbetätigung für wo alle Dateien Ruby - GEM installiert werden; Binaries, Bibliotheken und anderes Zeug. Durch die Verwendung -​-user-installweisen Sie Ruby GEM an, GEMs in dem ~/.gemVerzeichnis zu installieren, das sich natürlich im Heimatverzeichnis Ihres Benutzers befindet. Ohne die -​-user-installOption werden die Ruby-GEM-Dateien dort installiert, wo sich der Standardpfad GEM_HOMEbefindet.

Das Ändern des Standarddateipfads hat --user-installkeine negativen Auswirkungen auf den Betrieb. Die Ruby-GEMs würden nur in einem ~/.gemVerzeichnis installiert, das sich in Ihrem Home-Verzeichnis befindet, und Ruby wird dort nachprüfen können, sowie den eigenen Standardpfad für Updates.

Danke, dass Sie sich die Zeit genommen haben, das für mich zu klären. Wird die Verwendung von --user-install für einen Edelstein (wie beispielsweise [Jekyll] (https://jekyllrb.com/)) Auswirkungen auf den Betrieb, zukünftige Updates usw. haben? Oder wurde Ruby so geschrieben, dass er genauso funktioniert, ob sich Edelsteine ​​in `GEM_HOME` oder anderswo befinden? jsejcksn vor 8 Jahren 0
@jsejcksn Wenn Sie den Standarddateipfad mit --user-install ändern, wirkt sich dies nicht negativ auf den Betrieb aus. Was auch immer dieser neue Pfad ist, er wird einfach zu Ihrer `~ / .gemrc'-Datei hinzugefügt, sodass Ihre lokale Ruby-Installation in der Lage ist, den Pfad wie alle anderen zu verfolgen und alles zu tun, um die Dinge am Laufen zu halten. JakeGould vor 8 Jahren 0
Ich habe selbst nach der Installation keine `~ / .gemrc`-Datei. Haben Sie angedeutet, dass die Installation sie erstellen würde, oder ist dies ein weiterer Schritt, den ich manuell ausführen muss? jsejcksn vor 8 Jahren 0
@jsejcksn Mein schlechtes auf der `~ / .gemrc`; Ich habe die Konzepte durcheinander gebracht und erkenne jetzt, dass die lokal installierten Ruby-GEMs im Pfad "~ / .gem" installiert werden, der sich natürlich im Heimatverzeichnis Ihres Benutzers befindet. Meine Antwort wurde aktualisiert, um dies zu klären. JakeGould vor 8 Jahren 0