Le titre est la pêche.
Le sujet est trop gros et je suis un peu nerveux. Maintenant, parlons de ce que dit le titre.
gem install xxx
sera essentiellement installée dans l'environnement Ruby.bundler
, je pense que la situation d'exécution de gem install xxx
sera limitée.gem install
, bundle install
Il existe différentes manières de créer un environnement de développement.
Le manque de moyens uniformes est à la fois un mérite et un inconvénient. (Dans le sens de la liberté)
Cependant, le problème est: "Je ne suis pas sûr, mais c'est sur Qiita, et cela a fonctionné, donc je suis d'accord avec cette procédure."
Le logiciel publié sur OSS est publié de manière spécifique. Je voudrais me montrer comment en faire bon usage.
Par exemple, il y a un article comme celui-ci
"(Ubuntu) Construction de l'environnement Ruby on rails 6.0"
Il est important de noter que ** cet article n'est pas mauvais, c'est juste que je ne suis pas ces étapes **.
Lorsque je construis un projet Rails, j'effectue les étapes suivantes: Tout d'abord, je vais donner un aperçu et ensuite écrire des commandes spécifiques.
rbenv
bundle init
dans le répertoire du projet pour créer un fichier Gemfile
.Gemfile
créé et activez (commentez) les lignes qui sont gem'rails'
bundle install --path = vendor / bundle
pour installer le gem sous un chemin spécifiquerails s
Maintenant, écrivons une commande concrète. L'environnement suppose Ubuntu Linux.
Commencez sans Ruby. C'est presque la même chose que "(Ubuntu) Ruby on rails 6.0 construction de l'environnement", mais l'ordre est différent.
#Mettre à jour les informations du package apt
sudo apt update -y
#Mettre à jour le logiciel installé sur Ubuntu
sudo apt upgrade -y
#Installez les packages nécessaires pour construire Ruby via apt
sudo apt install build-essential -y
sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
#Lors de l'utilisation de sqlite3, installez la bibliothèque associée à sqlite3
sudo apt install libsqlite3-dev
#Pour PostgreSQL, exécutez la commande suivante
sudo apt-get install postgresql-common
sudo apt-get install libpq-dev
#Pour MySQL ou MariaDB, exécutez la commande suivante
sudo apt-get install libmysqlclient-dev
#Installer rbenv (outil de gestion de paquets)
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
#Définir le chemin dans la variable d'environnement
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
#Redémarrez le shell
exec $SHELL -l
# ruby-installer build
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
#Installez Ruby
rbenv install 2.6.2
rbenv global 2.6.2
#Installez la commande bundler en tant que gemme
# Ruby 2.Depuis 6, bundler est inclus, la procédure suivante est inutile. 2.Requis avant 5
gem install bundler
À ce stade, Ubuntu Linux a les commandes ruby
, gem
et bundler
installées.
Le développement avec Ruby on Rails est encore long.
Cependant, dans cet état, nous sommes prêts à commencer à écrire des programmes Ruby.
** La procédure est différente d'ici **
Ensuite, installez Node.js, qui est requis pour Rails 6 et supérieur.
# node.js,Installer npm
sudo apt install -y nodejs npm
#n package installé
sudo npm install n -g
#Installer le nœud à l'aide du package n
sudo n stable
#L'ancien nœud que vous avez mis en premier.js,Supprimer npm
sudo apt purge -y nodejs npm
#Se reconnecter
exec $SHELL -l
#Installer le paquet de fils
sudo npm install yarn -g
# node.Vérifiez si la version js est la dernière
node -v
En suivant cette procédure, vous avez installé les commandes ruby
(2.6.2) et gem
, node
et yarn
sur Ubuntu Linux.
Prenons une pause ici.
Une fois ces préparatifs en place, vous êtes prêt à exécuter Rails 6.
Ensuite, créez un répertoire pour le projet que vous souhaitez créer et configurez Rails.
#Créez un répertoire pour le projet que vous créez
mkdir example_project
#Déplacer vers le répertoire créé
cd example_project
#Exécutez le bundle init pour créer un fichier Gemfile
bundle init
#Modifiez le Gemfile créé et sélectionnez "# gem 'rails'Commentaire dans la partie
# 「# gem "rails"Où il est dit "#(tranchant)Effacer "gemme"'rails'Sous la forme de
gedit Gemfile
#bundle installer pour installer des rails
bundle install --path vendor/bundle
#Exécutez la nouvelle commande rails pour installer les gemmes de rails en vrac
bundle exec rails new .
(À ce stade, un message en anglais comme "Voulez-vous écraser?" S'affiche, alors entrez "Y".)
En suivant ces étapes, vous pourrez utiliser Rails.
bundle exec rails s
** Ajouté le 18/07/2020 **
Veuillez le signaler dans les commentaires et mentionner --path vendor / bundle
lors de l'installation du bundle
À partir de Bundler 2.1, l'option --path
est obsolète (obsolète). Veuillez vous référer à la description ici pour savoir comment traiter ce point.
Je vais expliquer dans quel état il se trouvait, le cas échéant
Tout d'abord, l'état dans lequel la bibliothèque qui est "préparation" est insérée est indiqué sous forme de figure.
Ce sont les bibliothèques installées sous Linux. Cela seul ne vous permettra pas d'exécuter des commandes Ruby (bien que cela soit naturel car Ruby n'est pas installé)
Dans l'état "Install Ruby", il sera dans l'état suivant
Les commandes ruby et gem sont installées sur la base de la bibliothèque «Packages installés sur Ubuntu Linux». La raison de la commande bundler est que vous installez la commande bundle
avec la commande gem install bundler
.
Ce qui suit montre l'état dans lequel "Node.js" est installé.
La ligne en pointillé est parce qu'elle a été supprimée avec la commande sudo apt purge -y nodejs npm
.
Dans cet état, les commandes «ruby», «gem», «bundler», «node», «npm» et «yarn» peuvent être exécutées.
Ce qu'il faut savoir, c'est qu'en ce qui concerne Ruby, seules les commandes ruby
, gem
et bundler
peuvent être exécutées, et en JavaScript, les commandes node
, npm
et yarn
peuvent être exécutées. seulement.
Ensuite, l'état "Créer le répertoire du projet que vous souhaitez créer et configurer Rails" s'affiche.
Oui, vous avez maintenant les ** bibliothèques requises pour votre projet ** installées dans le fournisseur / bundle.
Je pense qu'il est difficile de comprendre la comparaison avec cela seul, donc je vais montrer le cas où gem install rails
est exécuté.
Il est représenté en rouge parce que je veux le souligner.
Ce que je veux dire ici, c'est que la gemme de rails qui exécute la commande ** rails
et la version de" les gemmes liées aux rails sont stockées dans le répertoire vendeur / bundle "peuvent être différentes. Il y a ** </ font>.
Cette situation ne peut pas être complètement reproduite si la version du gem installé sur ruby ne correspond pas à la version du gem installé sous vendor / bundle
(devrait). Cela signifie qu'il est possible de créer une situation où une telle chose n'existe pas.
En revanche, la méthode décrite ci-dessus (la méthode qui n'utilise pas les gem install rails
) ne dépend pas des" programmes installés sous le répertoire HOME d'Ubuntu Linux ".
Par conséquent, il est confortable d'utiliser efficacement la commande bundler
, d'installer les bibliothèques requises pour le programme dans un répertoire spécifique et de dire" Gardez l'environnement gem standard Ruby aussi simple que possible ". Je pense que tu peux vivre une vie de Ruby.
(Cependant, cette histoire s'applique probablement aux écosystèmes dotés d'un système de gestion de paquets, tel que Python.)
Par conséquent, je pense qu'il est important de bien ** comprendre le rôle de chaque commande et à quoi elle convient, et de l'exécuter **.
Veuillez me pardonner l'écriture aléatoire parce que j'écris avec élan.
Recommended Posts