Der Titel ist Angeln.
Das Thema ist zu groß und ich bin etwas nervös. Lassen Sie uns nun darüber sprechen, was der Titel sagt.
gem install xxx
wird grundsätzlich in der Ruby-Umgebung installiert.bundler
denke ich, dass die Situation bei der Ausführung von gem install xxx
begrenzt sein wird.gem install
, bundle install
verwendenEs gibt verschiedene Möglichkeiten, eine Entwicklungsumgebung zu erstellen.
Das Fehlen einheitlicher Mittel ist sowohl ein Verdienst als auch ein Fehler. (Im Sinne der Freiheit)
Das Problem ist jedoch: "Ich bin nicht sicher, aber es ist auf Qiita und es hat funktioniert, also bin ich mit diesem Verfahren einverstanden."
Die auf OSS veröffentlichte Software wird zweckspezifisch veröffentlicht. Ich möchte mir zeigen, wie ich es gut nutzen kann.
Zum Beispiel gibt es einen Artikel wie diesen
"(Ubuntu) Ruby on Rails 6.0-Umgebungskonstruktion"
Es ist wichtig zu beachten, dass ** dieser Artikel nicht schlecht ist, sondern nur, dass ich diese Schritte nicht befolge **.
Wenn ich ein Rails-Projekt erstelle, gehe ich folgendermaßen vor: Zuerst werde ich einen Überblick geben und dann bestimmte Befehle schreiben.
rbenv
example_project
).bundle install --path = vendor / bundle
aus, um das Gem unter einem bestimmten Pfad zu installierenRails s
Schreiben wir nun einen konkreten Befehl. Die Umgebung setzt Ubuntu Linux voraus.
Beginnen Sie ohne Ruby. Es ist fast dasselbe wie "(Ubuntu) Ruby on Rails 6.0-Umgebungskonstruktion", aber die Reihenfolge ist unterschiedlich.
#Aktualisieren Sie die passenden Paketinformationen
sudo apt update -y
#Aktualisieren Sie die unter Ubuntu installierte Software
sudo apt upgrade -y
#Installieren Sie die Pakete, die zum Erstellen von Ruby über apt erforderlich sind
sudo apt install build-essential -y
sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
#Installieren Sie bei Verwendung von sqlite3 die Bibliothek für sqlite3
sudo apt install libsqlite3-dev
#Führen Sie für PostgreSQL den folgenden Befehl aus
sudo apt-get install postgresql-common
sudo apt-get install libpq-dev
#Führen Sie für MySQL oder MariaDB den folgenden Befehl aus
sudo apt-get install libmysqlclient-dev
#Installieren Sie rbenv (Paketverwaltungstool)
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
#Pfad in Umgebungsvariable festlegen
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
#Starten Sie die Shell neu
exec $SHELL -l
# ruby-Build installieren
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
#Installieren Sie Ruby
rbenv install 2.6.2
rbenv global 2.6.2
#Installieren Sie den Bundler-Befehl als Juwel
# Ruby 2.Da der Bundler 6 enthalten ist, ist das folgende Verfahren nicht erforderlich. 2.Erforderlich vor 5
gem install bundler
Zu diesem Zeitpunkt sind in Ubuntu Linux die Befehle "ruby", "gem" und "bundler" installiert.
Es ist noch ein langer Weg, um mit Ruby on Rails zu entwickeln.
In diesem Zustand können wir jedoch mit dem Schreiben von Ruby-Programmen beginnen.
** Das Verfahren unterscheidet sich von hier **
Installieren Sie dann Node.js, das für Rails 6 und höher erforderlich ist.
# node.js,Installieren Sie npm
sudo apt install -y nodejs npm
#n Paket installiert
sudo npm install n -g
#Installieren Sie den Knoten mit dem Paket n
sudo n stable
#Der alte Knoten, den Sie zuerst eingegeben haben.js,Npm entfernen
sudo apt purge -y nodejs npm
#Erneut anmelden
exec $SHELL -l
#Garnpaket einlegen
sudo npm install yarn -g
# node.Überprüfen Sie, ob die js-Version die neueste ist
node -v
Mit diesem Verfahren haben Sie die Befehle ruby
(2.6.2) und gem
, node
und yarn
unter Ubuntu Linux installiert.
Machen wir hier eine Pause.
Mit diesen Vorbereitungen können Sie Rails 6 ausführen.
Erstellen Sie als Nächstes ein Verzeichnis für das Projekt, das Sie erstellen möchten, und richten Sie Rails ein.
#Erstellen Sie ein Verzeichnis für das von Ihnen erstellte Projekt
mkdir example_project
#Wechseln Sie in das erstellte Verzeichnis
cd example_project
#Führen Sie bundle init aus, um eine Gemfile-Datei zu erstellen
bundle init
#Bearbeiten Sie die erstellte Gemfile und wählen Sie "# gem 'rails'Kommentar im Teil
# 「# gem "rails"Wo steht "#(Scharf)"Edelstein" löschen'rails'In Form von
gedit Gemfile
#Bundle installieren, um Schienen zu installieren
bundle install --path vendor/bundle
#Führen Sie den Befehl Rails New aus, um die Rails-Edelsteine in großen Mengen zu installieren
bundle exec rails new .
(Zu diesem Zeitpunkt wird eine englische Nachricht wie "Möchten Sie überschreiben?" Angezeigt. Geben Sie daher "Y" ein.)
Wenn Sie diese Schritte ausführen, können Sie Rails verwenden.
bundle exec rails s
** Hinzugefügt am 18.07.2020 **
Bitte weisen Sie in den Kommentaren darauf hin und erwähnen Sie bei der Bundle-Installation "--path vendor / bundle". Ab Bundler 2.1 ist die Option "--path" veraltet (veraltet). In der Beschreibung hier finden Sie Informationen zum Umgang mit diesem Punkt.
Ich werde erklären, was für eine Situation es war
Zunächst wird der Zustand, in dem die Bibliothek "Vorbereitung" eingefügt wird, als Abbildung angezeigt.
Dies sind die unter Linux installierten Bibliotheken. Dies allein ermöglicht es Ihnen nicht, Ruby-Befehle auszuführen (obwohl dies natürlich ist, da Ruby nicht installiert ist).
Im Status "Ruby installieren" befindet es sich im folgenden Status
Die Befehle ruby und gem werden basierend auf der Bibliothek "Unter Ubuntu Linux installierte Pakete" installiert. Der Grund für den Befehl bundler ist, dass Sie den Befehl "bundle" mit dem Befehl "gem install bundler" installieren.
Das Folgende zeigt den Status, in dem "Node.js" installiert ist.
Die gepunktete Linie ist, weil sie mit dem Befehl sudo apt purge -y nodejs npm
gelöscht wurde.
In diesem Zustand können die Befehle "ruby", "gem", "bundler", "node", "npm" und "yarn" ausgeführt werden.
Beachten Sie, dass bei Ruby nur die Befehle "ruby", "gem" und "bundler" ausgeführt werden können und in JavaScript die Befehle "node", "npm" und "yarn" ausgeführt werden können. nur.
Als Nächstes wird der Status "Verzeichnis des Projekts erstellen, das Sie erstellen und Rails einrichten möchten" angezeigt.
Ja, Sie haben jetzt die für Ihr Projekt erforderlichen ** Bibliotheken ** in Vendor / Bundle installiert.
Ich denke, es ist schwer, den Vergleich allein zu verstehen, deshalb werde ich den Fall zeigen, in dem "Gem Install Rails" ausgeführt wird.
Es wird rot angezeigt, weil ich es hervorheben möchte.
Was ich hier sagen möchte, ist, dass der Edelstein der Schienen, der den Befehl ** `Schienen" ausführt, und die Version von "Edelsteine, die sich auf Schienen beziehen, im Verzeichnis des Anbieters / Bündels gespeichert sind" unterschiedlich sein können. Es gibt ** </ font>.
Ein solcher Zustand kann nicht vollständig reproduziert werden, wenn die auf Ruby installierte Version des Edelsteins nicht mit der unter "Anbieter / Bundle" installierten Version des Edelsteins übereinstimmt (sollte gleich sein). Es bedeutet, dass es möglich ist, eine Situation zu schaffen, in der es so etwas nicht gibt.
Andererseits hängt die oben beschriebene Methode (die Methode, die keine "gem install Rails" verwendet) nicht von "Programmen ab, die im HOME-Verzeichnis von Ubuntu Linux installiert sind".
Daher ist es bequem, den Befehl "bundler" effektiv zu verwenden, um die für das Programm erforderlichen Bibliotheken in einem bestimmten Verzeichnis zu installieren und "die Ruby-Standard-Gem-Umgebung so einfach wie möglich zu halten". Ich denke, du kannst ein Leben mit Ruby führen.
(Diese Geschichte gilt jedoch wahrscheinlich für Ökosysteme mit einem Paketverwaltungssystem wie Python.)
Daher denke ich, dass es wichtig ist, die Rolle jedes Befehls und dessen Zweck richtig zu verstehen und auszuführen **.
Bitte verzeihen Sie mir das zufällige Schreiben, weil ich mit Schwung schreibe.
Recommended Posts