Ce sur quoi je suis tombé lors de l'installation de Ruby sur Ubuntu

introduction

J'ai rencontré un code lors de l'installation de Ruby sur Ubuntu sur ce site.

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

#Ajout du script d'initialisation rbenv $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile


 Qu'est-ce que c'est que ça ...
 Au début, j'ai pensé, mais en faisant des recherches, je l'ai compris dans une certaine mesure, je vais donc le résumer dans un article pour ne pas l'oublier.
 Si vous faites une erreur, merci de me le faire savoir dans les commentaires.

# À propos de l'écho
 Tout d'abord, parlons de la commande ʻecho`. Veuillez voir [ici](https://eng-entrance.com/linux-command-echo) pour une explication détaillée de ʻecho`. Il y a trois façons d'utiliser ʻecho` utilisées dans la première commande que j'ai écrite.

>```sh
#Ajoutez une chaîne de caractères au fichier.
$chaîne d'écho>>nom de fichier

># 「$Affichez la chaîne "variable".
$ echo '$variable'

># 「$Affichez le contenu d'une variable appelée "Variable".
$ echo "$variable"

Revenez maintenant au premier code.

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


 Les deux commandes ont la forme ʻecho string >> ~ / .bash_profile`.

 En d'autres termes, j'ajoute la chaîne à un fichier appelé .bash_profile dans mon répertoire personnel. Ce .bash_profile sera expliqué plus tard.

 Concernant le contenu de la chaîne, `` export PATH = "$ HOME / .rbenv / bin: $ PATH" '`, export est une commande qui permet de définir des variables d'environnement. Autrement dit, il définit la variable d'environnement `PATH` sur la valeur`" $ HOME / .rbenv / bin: $ PATH "`. Nous discuterons également des variables d'environnement plus tard.

 De même, le contenu de la chaîne de caractères est `` 'eval "$ (rbenv init-)"' `, mais eval est une commande qui concatène la chaîne de caractères spécifiée après évaluation et oblige le shell actuel à l'exécuter. [Jetez un œil à ceci. En fait, je ne savais pas grand-chose sur eval, alors je vais essayer d'en savoir un peu plus.
 Dans mon interprétation, cette commande amène le shell à exécuter la commande `rbenv init -`.

## À propos de .bash_profile
 Le .bash_profile qui est sorti plus tôt, mais [cet article](https://neos21.hatenablog.com/entry/2017/02/12/142817) est facile à comprendre.
 Pour résumer brièvement, bash_profile est un fichier qui ne s'exécute qu'une seule fois à la connexion.
 Considérant cela avec l'histoire précédente

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

Signifie de définir $ HOME / .rbenv / bin: $ PATH dans PATH une seule fois à la connexion et d'exécuter rbenv init -

À propos du "passage"

Ensuite, parlons de ce que signifie «passer». En conclusion, «passer par» signifie

Modifiez la description de la variable d'environnement ($ PATH) et ajoutez le chemin de recherche de la commande.

Extrait de ce site. Veuillez le lire car il contient une description très détaillée du «passage».

Pour revenir à l'histoire, les variables d'environnement sont des variables stockées sur votre ordinateur. Vous pouvez vérifier les variables d'environnement avec la commande suivante.

Le nom de la variable d'environnement printenv

#Si aucun argument n'est ajouté après printenv, toutes les variables d'environnement seront affichées. printenv


 Lorsque vous exécutez `printenv`, les variables d'environnement sont affichées dans une ligne et vous pouvez y voir la variable d'environnement appelée` PATH`.

 Le rôle joué par ce `PATH` est qu'il indique au shell (terminal) où se trouvent les fichiers exécutables.

 Par exemple, dans la commande `printenv` qui est sortie plus tôt, le shell fait référence au fichier exécutable` / usr / bin / printenv`. Par conséquent, les deux suivants sont la même commande.

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

La raison pour laquelle / usr / bin peut être omis à ce moment est que cela est décrit dans PATH.

Lorsque vous exécutez printenv PATH, il sera décrit comme / home / [nom d'utilisateur] / bin: .... En effet, les chemins sont séparés par: et l'emplacement du fichier exécutable est recherché à partir du premier chemin.

Jetons un coup d'œil à la première commande que nous avons écrite ici.

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


 Je vous ai dit que cette commande définit la valeur `$ HOME / .rbenv / bin: $ PATH` dans` PATH`. Ici, `$ HOME / .rbenv / bin: $ PATH` est entouré de" ", donc` $ HOME` et` $ PATH` font référence aux valeurs des variables d'environnement. La valeur de `$ HOME` est` / home / [nom d'utilisateur] ʻdans mon cas, et` PATH` est` / home / [nom d'utilisateur] / bin: ... `comme avant.

 Autrement dit, la valeur de `$ PATH` définie par ʻexport PATH =" $ HOME / .rbenv / bin: $ PATH "` est `/ home / [nom d'utilisateur] /. Rbenv / bin: / home / [nom d'utilisateur] / bin: ・ ・ ・ `. Cela permettra au shell de référencer le fichier exécutable situé dans `/ home / [nom d'utilisateur] /. Rbenv / bin`.

# finalement
 Non, c'était long. Au début, je pensais que c'était un gâchis, comme passer par un chemin ou .bash_profile, mais quand je l'ai recherché, c'était étonnamment intéressant à comprendre. Maintenant que l'environnement des rails est en place, je voudrais résumer ce que j'ai appris des rails.


Recommended Posts

Ce sur quoi je suis tombé lors de l'installation de Ruby sur Ubuntu
IntelliJ gradle 2.2 → 2.6 Ce que j'ai fait lorsque je suis tombé sur la migration de l'environnement
Installez Ruby sur Ubuntu 20.04
Ce que je suis tombé sur le test ActiveModel :: Serializer
Installation d'OpenMX sur Ubuntu 18.04.5 LTS
J'ai essayé d'installer le plugin lié à Ruby on Rails avec vim-plug
Débutant Ruby on Rails Ce que j'ai appris est résumé
[Mac OS] La CLI Spring Boot a été perturbée par ruby lors de l'installation
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
J'ai essayé d'installer CentOS 8 sur ESXi 6.7
Installez ruby sur Ubuntu 20.04 avec rbenv
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
[Débutant] Je suis tombé sur le lancement d'un projet avec Rails6
Notez que je suis tombé sur la construction de l'environnement Rails
Ce sur quoi je suis tombé lors de l'installation de Ruby sur Ubuntu
Ce que je suis tombé sur le test ActiveModel :: Serializer
Désactiver les fenêtres contextuelles lors du changement d'espace de travail sur Ubuntu 20.04
Points sur lesquels je suis tombé lors de la création d'une application Android [Mis à jour de temps en temps]
Quand le terminal Ruby on Rails revient en arrière
Erreur lors de l'installation de l'environnement d'exécution de ruby sur l'instance EC2
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
J'ai essayé d'installer docker sur une instance EC2
[Swift] Les débutants sont tombés par hasard sur l'installation des CocoaPods et la procédure d'installation
J'ai fait un portfolio avec Ruby On Rails
[Ruby on Rails] J'obtiens un avertissement lors de l'exécution de RSpec car gem'chromedriver-helper 'est obsolète.
Remarques sur les erreurs qui se produisent lors de l'installation du JDK et les contre-mesures qui ont été essayées