Worauf ich bei der Installation von Ruby unter Ubuntu gestoßen bin

Einführung

Bei der Installation von Ruby unter Ubuntu auf dieser Site bin ich auf einen Code gestoßen.

#Pfad hinzufügen $ echo 'export PATH="HOME/.rbenv/bin:PATH"' >> ~/.bash_profile

#Hinzufügen eines rbenv-Initialisierungsskripts $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile


 Was zur Hölle ist das ...
 Zuerst dachte ich, aber als ich es recherchierte, verstand ich es bis zu einem gewissen Grad, also werde ich es in einem Artikel zusammenfassen, damit ich es nicht vergesse.
 Wenn Sie einen Fehler machen, lassen Sie es mich bitte in den Kommentaren wissen.

# Über Echo
 Lassen Sie uns zunächst über den Befehl `echo` sprechen. Eine ausführliche Erklärung von "echo" finden Sie unter [hier](https://eng-entrance.com/linux-command-echo). Es gibt drei Möglichkeiten, das im ersten Befehl, den Sie geschrieben haben, verwendete Echo zu verwenden.

>```sh
#Fügen Sie der Datei eine Zeichenfolge hinzu.
$Echo-String>>Dateiname

># 「$Zeigen Sie die Zeichenfolge "Variable" an.
$ echo '$Variable'

># 「$Zeigen Sie den Inhalt einer Variablen namens "Variable" an.
$ echo "$Variable"

Kehren Sie nun zum ersten Code zurück.

$ echo 'export PATH="HOME/.rbenv/bin:PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile


 Beide Befehle haben die Form "echo string >> ~ / .bash_profile".

 Mit anderen Worten, ich füge die Zeichenfolge einer Datei mit dem Namen .bash_profile in meinem Home-Verzeichnis hinzu. Dieses .bash_profile wird später erklärt.

 In Bezug auf den Inhalt der Zeichenfolge "export PATH =" $ HOME / .rbenv / bin: $ PATH "" ist export ein Befehl, mit dem Sie Umgebungsvariablen definieren können. Das heißt, es setzt die Umgebungsvariable "PATH" auf den Wert "" $ HOME / .rbenv / bin: $ PATH "". Wir werden später auch Umgebungsvariablen diskutieren.

 In ähnlicher Weise lautet der Inhalt der Zeichenfolge "eval" $ (rbenv init-) "", aber eval ist ein Befehl, der die angegebene Zeichenfolge nach der Auswertung verkettet und die aktuelle Shell veranlasst, sie auszuführen. [Schau dir das an. Eigentlich wusste ich nicht viel über Eval, also werde ich versuchen, ein bisschen mehr herauszufinden.
 In meiner Interpretation bewirkt dieser Befehl, dass die Shell den Befehl "rbenv init-" ausführt.

## Über .bash_profile
 Das .bash_profile, das früher veröffentlicht wurde, aber [dieser Artikel](https://neos21.hatenablog.com/entry/2017/02/12/142817) ist leicht zu verstehen.
 Kurz zusammengefasst ist bash_profile eine Datei, die beim Anmelden nur einmal ausgeführt wird.
 Betrachtet man es zusammen mit der vorherigen Geschichte

>```sh
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

Bedeutet, "$ HOME / .rbenv / bin: $ PATH" in "PATH" nur einmal beim Anmelden zu definieren und "rbenv init-" auszuführen.

Über "Durchgang"

Lassen Sie uns als nächstes darüber sprechen, was es bedeutet, "durchzugehen". Zusammenfassend bedeutet "Durchgang"

Ändern Sie die Beschreibung der Umgebungsvariablen ($ PATH) und fügen Sie den Befehlssuchpfad hinzu.

Zitiert von dieser Site. Bitte lesen Sie es, da es eine sehr detaillierte Beschreibung von "Durchgang" enthält.

Um auf die Geschichte zurückzukommen: Umgebungsvariablen sind Variablen, die auf Ihrem Computer gespeichert sind. Sie können die Umgebungsvariablen mit dem folgenden Befehl überprüfen.

Der Name der printenv-Umgebungsvariablen

#Wenn nach printenv kein Argument hinzugefügt wird, werden alle Umgebungsvariablen angezeigt. printenv


 Wenn Sie "printenv" ausführen, werden die Umgebungsvariablen in einer Reihe angezeigt, und Sie können die Umgebungsvariable "PATH" darin sehen.

 Welche Rolle dieser "Pfad" spielt, ist, dass er der Shell (dem Terminal) mitteilt, wo sich die ausführbaren Dateien befinden.

 In dem zuvor veröffentlichten Befehl "printenv" verweist die Shell beispielsweise auf die ausführbare Datei "/ usr / bin / printenv". Daher sind die folgenden beiden der gleiche Befehl.

>```sh
$ /usr/bin/printenv
$ printenv

Der Grund, warum / usr / bin zu diesem Zeitpunkt weggelassen werden kann, ist, dass dies in PATH beschrieben ist.

Wenn Sie "printenv PATH" ausführen, wird es als "/ home / [Benutzername] / bin: ..." beschrieben. Dies liegt daran, dass die Pfade durch Folgendes getrennt sind und der Speicherort der ausführbaren Datei vom ersten Pfad aus durchsucht wird.

Werfen wir einen Blick auf den ersten Befehl, den wir hier geschrieben haben.

$ echo 'export PATH="HOME/.rbenv/bin:PATH"' >> ~/.bash_profile


 Ich habe dir gesagt, dass dieser Befehl den Wert `$ HOME / .rbenv / bin: $ PATH` in` PATH` definiert. Hier ist "$ HOME / .rbenv / bin: $ PATH" in "" eingeschlossen, daher beziehen sich "$ HOME" und "$ PATH" auf die Werte in den Umgebungsvariablen. Der Wert von "$ HOME" ist in meinem Fall "/ home / [Benutzername]" und "PATH" ist "/ home / [Benutzername] / bin: ..." wie zuvor.

 Das heißt, der Wert von "$ PATH", definiert durch "export PATH =" $ HOME / .rbenv / bin: $ PATH "" ist "/ home / [Benutzername] /. Rbenv / bin: / home / [Benutzername] / bin: ・ ・ ・ `. Dadurch kann die Shell auf die ausführbare Datei verweisen, die sich in `/ home / [Benutzername] /. Rbenv / bin` befindet.

# Schließlich
 Nein, es war lang. Zuerst dachte ich, es sei ein Durcheinander, wie das Durchlaufen eines Pfades oder eines .bash_profile, aber als ich es nachschlug, war es überraschend interessant zu verstehen. Nachdem die Schienenumgebung eingerichtet ist, möchte ich zusammenfassen, was ich aus Schienen gelernt habe.


Recommended Posts

Worauf ich bei der Installation von Ruby unter Ubuntu gestoßen bin
IntelliJ gradle 2.2 → 2.6 Was ich getan habe, als ich über die Umgebungsmigration gestolpert bin
Installieren Sie Ruby unter Ubuntu 20.04
Worauf ich beim ActiveModel :: Serializer-Test gestoßen bin
OpenMX unter Ubuntu 18.04.5 LTS installieren
Ich habe versucht, das Ruby on Rails-Plugin mit vim-plug zu installieren
Anfänger Ruby on Rails Was ich gelernt habe, wird zusammengefasst
[Mac OS] Spring Boot CLI wurde bei der Installation durch Ruby gestört
Ein Hinweis, als ich süchtig danach war, Ubuntu auf WSL1 in WSL2 zu konvertieren
Ich habe versucht, CentOS 8 unter ESXi 6.7 zu installieren
Installieren Sie Ruby unter Ubuntu 20.04 mit rbenv
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
[Anfänger] Ich bin auf ein Projekt mit Rails6 gestoßen
Beachten Sie, dass ich beim Erstellen der Rails-Umgebung gestolpert bin
Worauf ich bei der Installation von Ruby unter Ubuntu gestoßen bin
Worauf ich beim ActiveModel :: Serializer-Test gestoßen bin
Deaktivieren Sie Popups, wenn Sie unter Ubuntu 20.04 zwischen Arbeitsbereichen wechseln
Punkte, auf die ich beim Erstellen einer Android-App gestoßen bin [Von Zeit zu Zeit aktualisiert]
Wenn das Ruby on Rails-Terminal zurückrollt
Fehler beim Installieren der Ruby-Ausführungsumgebung auf der EC2-Instanz
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
Ich habe versucht, Docker auf einer EC2-Instanz zu installieren
[Swift] Anfänger stießen auf die Installation von CocoaPods und das Installationsverfahren
Ich habe mit Ruby On Rails ein Portfolio erstellt
[Ruby on Rails] Beim Ausführen von RSpec wird eine Warnung angezeigt, da gem'chromedriver-helper 'veraltet ist.
Hinweise zu Fehlern bei der Installation des JDK und zu versuchten Gegenmaßnahmen