[RUBY] Erstellen Sie eine Umgebung, in der Sie Rails Girls oder El-Training mit Clound 9 ausprobieren können

Einführung

Lassen Sie uns Ruby (https://github.com/everyleaf/el-training) wie Rails Gilrs und [el-training] studieren, ein Lehrplan für die Ausbildung neuer Mitarbeiter von Manyo. Dies ist eine Konstruktionsanleitung für Umgebungen, die keinen Mac oder schlechte PC-Spezifikationen haben.

: bangbang: In Bezug auf RailsGirls beachten Sie bitte, dass das Ziel nicht die Teilnahme ist, sondern diejenigen, die Coaching ausprobieren möchten, aber nicht gut darin sind, eine Umgebung aufzubauen (Gibt es eine solche Person?): Bow:

Wie sehen RailsGirls aus? Als ich eine Windows-Maschine herausholte, die ich normalerweise nicht benutze, und sie auf WSL baute, dauerte es eine Stunde, um den Betrieb der Schienen zu überprüfen (es war natürlich, dass der PC stromlos war, vielleicht war es eine Festplatte anstelle einer SSD. Ist eine Hauptursache), also habe ich es auf Cloud9 gebaut.

Wenn Sie im Internet suchen, werden Sie so viele Dinge finden, wie Sie möchten, aber es war anders als die gewünschte Umgebung, daher dient es auch als Memo. Außerdem habe ich versucht, es sorgfältig zusammenzufassen, damit es auch dann hilfreich ist, wenn die Zeit ab der Veröffentlichung dieses Artikels vergeht.

Ziel dieses Bauartikels

Bedingungen

Bauverfahren

Vom Cloud 9-Start bis zum Terminalstart

Bitte starten Sie es zuerst. image.png

Neues Terminal öffnen.

image.png

Beim Öffnen startet das Terminal mit dem Verzeichnis ~ / environment als aktuellem Verzeichnis. Anscheinend scheint es in Cloud9 eine gute Idee zu sein, Projektdateien usw. in dieses Verzeichnis zu stellen.

image.png

Zeitzone ändern

Das Datum ist nicht in Japan (UTC).

Überprüfen Sie das Datum


y-amadatsu:~/environment $ date
Sat May 16 02:29:10 UTC 2020

Lassen Sie uns zuerst die Zeitzone ändern.

Überprüfen Sie die Zeitzone


y-amadatsu:~/environment $ timedatectl list-timezones | grep -i tokyo
Asia/Tokyo

Wenn Sie die einzustellende Zeitzone überprüfen, sieht es wie "Asien / Tokio" aus.

Zeitzoneneinstellung


y-amadatsu:~/environment $ sudo timedatectl set-timezone Asia/Tokyo
y-amadatsu:~/environment $ date
Sat May 16 11:33:46 JST 2020

Mit dem Befehl "Datum" konnte ich bestätigen, dass die Zeit auf Japan geändert wurde.

Bis zur Installation von Ruby

Überprüfen Sie die Ruby-Version. Es ist ein bisschen alt, also machen Sie sich bereit, die neue Version zu installieren.

Überprüfen Sie den Installationsstatus von Ruby


y-amadatsu:~/environment $ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
y-amadatsu:~/environment $ which ruby
/home/ubuntu/.rvm/rubies/ruby-2.6.3/bin/ruby

Standardmäßig wurde rvm installiert, aber da ich normalerweise rbenv verwende, werde ich es neu installieren.

Zuallererst rvm, auf Wiedersehen: raised_hand:

Rvm deinstallieren


y-amadatsu:~/environment $ rvm implode
Are you SURE you wish for rvm to implode?
This will recursively remove /home/ubuntu/.rvm and other rvm traces?
(anything other than 'yes' will cancel) > yes
Removing rvm-shipped binaries (rvm-prompt, rvm, rvm-sudo rvm-shell and rvm-auto-ruby)
Removing rvm wrappers in /home/ubuntu/.rvm/bin
Hai! Removing /home/ubuntu/.rvm
/home/ubuntu/.rvm has been removed.

Note you may need to manually remove /etc/rvmrc and ~/.rvmrc if they exist still.
Please check all .bashrc .bash_profile .profile and .zshrc for RVM source lines and delete or comment out if this was a Per-User installation.
Also make sure to remove `rvm` group if this was a system installation.
Finally it might help to relogin / restart if you want to have fresh environment (like for installing RVM again).

Am Ende gibt es eine Anweisung zum Löschen unnötiger Dateien usw., aber in meiner Umgebung, die als erste Umgebung [^ aws-Umgebung] gestartet wurde, scheint es unpraktisch, nur Schienen auszuführen, also werde ich so weitermachen, wie es ist. Wenn Sie später auf Probleme stoßen, z. B. wenn der Ruby-Befehl nicht gefunden wird oder die Version von Ruby anders ausgeführt wird, sollten Sie die obigen Einstellungen überprüfen.

[^ aws-environment]: Cloud9-Betriebsumgebung (Umgebung).

Installieren Sie nun rbenv. Befolgen Sie die Installationsprozedur von Honke Site.

Installieren Sie rbenv


y-amadatsu:~/environment $ sudo apt-get update
y-amadatsu:~/environment $ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
y-amadatsu:~/environment $ cd ~/.rbenv && src/configure && make -C src
make: Entering directory '/home/ubuntu/.rbenv/src'
gcc -fPIC     -c -o realpath.o realpath.c
gcc -shared -Wl,-soname,../libexec/rbenv-realpath.dylib  -o ../libexec/rbenv-realpath.dylib realpath.o 
make: Leaving directory '/home/ubuntu/.rbenv/src'

Dieses Mal habe ich es gemäß dem Installationsverfahren versucht, aber von nun an denke ich, dass es besser ist, "sudo apt-get update" durch "sudo apt update" zu ersetzen und sich daran zu gewöhnen [^ apt-get].

[^ apt-get]: Siehe https://linuxfan.info/package-management-ubuntu. Obwohl apt empfohlen wurde und ziemlich auffällt, gibt es viele Beschreibungen, die im Internet nicht so aktuell sind.

Außerdem habe ich "cd ~ / .rbenv && src / configure && make -C src" für Bash ausprobiert. Ich denke, es wird schneller, weil es kompiliert wird, aber es ist normalerweise nicht notwendig [^ rbenv-compile]. Es wurde in das aktuelle Verzeichnis ~ / .rbenv geändert, aber ich werde fortfahren, ohne mir darüber Sorgen zu machen ...

[^ rbenv-compile]: Ich denke, es gibt kein Problem, weil es so schnell genug ist. Ich denke eher, dass ich es erneut kompilieren muss, wenn ich rbenv in Zukunft selbst aktualisiere, aber ich denke, ich werde es wahrscheinlich zu diesem Zeitpunkt vergessen: angel:

rbenv Einstellungen(1)


y-amadatsu:~/.rbenv (master) $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
y-amadatsu:~/.rbenv (master) $ ~/.rbenv/bin/rbenv init
# Load rbenv automatically by appending
# the following to ~/.bash_profile:

eval "$(rbenv init -)"

Wie angewiesen zu .bash_profile hinzufügen.

rbenv Einstellungen(2)


y-amadatsu:~/.rbenv (master) $ echo eval "$(rbenv init -)" >> ~/.bash_profile

Schließen Sie das Terminal und öffnen Sie es erneut, wie angegeben. [^ Source] Weiter. [^ source]: Wenn Sie im Internet suchen, finden Sie viele Erklärungen für die Prozedur zum Ausführen von "source ~ / .bash_profile". Es ist kein Fehler, aber wenn Sie die Installationsanweisungen (auch als Primärinformationen bezeichnet) des Softwareanbieters befolgen, verringert sich die Wahrscheinlichkeit, dass ein unbekanntes Problem auftritt. Es wird daher empfohlen, die Anweisungen ehrlich zu befolgen, bis Sie sich daran gewöhnt haben. Außerdem wollte ich hier die Erklärung der Verzeichnisbewegung weglassen.

Es ist ein Diagnoseprogramm wie "Brew Docker".

rbenv Einstellungen(3)


y-amadatsu:~/environment $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/ubuntu/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: not found
Unless you plan to add Ruby versions manually, you should install ruby-build.
Please refer to https://github.com/rbenv/ruby-build#installation

Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/home/ubuntu/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

Natürlich, weil "Ruby-Build" nicht enthalten ist

Checking `rbenv install' support: not found

Der Punkt scheint jedoch etwas verwirrend zu sein, da das Beispiel im Installationsvorgang von rbenv im bereits installierten Zustand angezeigt wird. Fahren wir jedoch mit https://github.com/rbenv/ruby-build#installation fort.

Dieses Mal werden wir mit der Installation als rbenv-Plug-In fortfahren, das anscheinend üblich ist.

rbenv Einstellungen(4)


y-amadatsu:~/environment $ mkdir -p "$(rbenv root)"/plugins
y-amadatsu:~/environment $ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
Cloning into '/home/ubuntu/.rbenv/plugins/ruby-build'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10844 (delta 1), reused 3 (delta 0), pack-reused 10835
Receiving objects: 100% (10844/10844), 2.28 MiB | 16.79 MiB/s, done.
Resolving deltas: 100% (7158/7158), done.
y-amadatsu:~/environment $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/ubuntu/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /home/ubuntu/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20200401-11-g12af1c3)
Counting installed Ruby versions: none
  There aren't any Ruby versions installed under `/home/ubuntu/.rbenv/versions'.
  You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK

Das ist in Ordnung. Installieren Sie jetzt Ruby. Dieses Mal habe ich 2.6.6 installiert, die neueste Version der ruby2.6-Serie. Wenn EC2 t2.micro ist, dauert es einige Zeit: Kaffee: Es hat ungefähr 10 Minuten gedauert ... (Ich erinnere mich, dass ich geflogen bin: Engel :)

Installation von Rubin


y-amadatsu:~/environment $ rbenv install 2.6.6
Downloading ruby-2.6.6.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.bz2
Installing ruby-2.6.6...
Installed ruby-2.6.6 to /home/ubuntu/.rbenv/versions/2.6.6

y-amadatsu:~/environment $ rbenv global 2.6.6
y-amadatsu:~/environment $ ruby -v
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux]

Okay, die Installation ist abgeschlossen!

Installation der erforderlichen Pakete und Unterstützung für unnötige Pakete (MySQL)

Dieses Mal werden wir Rails6 ausführen, also installieren Sie die erforderlichen Pakete.

Ermöglichen Sie vorab die Installation des Garns über apt. Besuchen Sie die offizielle Website und registrieren Sie zuerst den öffentlichen Schlüssel für das Debian-Paket-Repository und legen Sie apt vor der Installation fest.

Registrierung des Garnvorrats


y-amadatsu:~/environment $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
OK
y-amadatsu:~/environment $ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
deb https://dl.yarnpkg.com/debian/ stable main

Stellen Sie sicher, dass Sie "sudo apt update" ausführen, wenn Sie ein Repository hinzufügen.

Aktualisieren Sie die apt-Paketliste


y-amadatsu:~/environment $ sudo apt update
Hit:1 https://download.docker.com/linux/ubuntu bionic InRelease
Get:2 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]                                               
Hit:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease                                             
Get:4 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]                           
Get:5 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]                         
Get:6 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]          
Get:7 https://dl.yarnpkg.com/debian stable/main amd64 Packages [9953 B]
Get:8 https://dl.yarnpkg.com/debian stable/main all Packages [9953 B]    
Fetched 289 kB in 1s (499 kB/s)                    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
30 packages can be upgraded. Run 'apt list --upgradable' to see them.

Wenn ich die neueste Paketliste importiert habe, gibt es anscheinend viele Pakete, die aktualisiert werden können. Daher werde ich sie zu diesem Zeitpunkt aktualisieren.

Anwenden von Update-Paketen(upgrade)


y-amadatsu:~/environment $ sudo apt upgrade -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
...Kürzung...
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
The sys schema is already up to date (version 1.5.2).
Checking databases.
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.
Setting up mysql-server (5.7.30-0ubuntu0.18.04.1) ...
Processing triggers for initramfs-tools (0.130ubuntu3.9) ...
update-initramfs: Generating /boot/initrd.img-5.3.0-1017-aws
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for systemd (237-3ubuntu10.40) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for dbus (1.12.2-1ubuntu1.1) ...
Processing triggers for ureadahead (0.100.0-21) ...

Das Update ist abgeschlossen ... und ich habe im Protokoll von: point_up festgestellt, dass MySQL bereits vorhanden ist ...

Überprüfen Sie den MySQL-Prozess


y-amadatsu:~/environment $ ps aux | grep [m]ysql
mysql    27099  0.1 17.7 1161948 178088 ?      Sl   12:36   0:00 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Immerhin war es enthalten. ~~ Aus religiösen Gründen ~~ Diesmal ist es unnötig, also werde ich mich zuerst damit befassen. Beenden Sie zuerst den Dienst und deaktivieren Sie dann den Paketdienst.

Nach Beendigung des Dienstes ...

Stoppen Sie MySQL


y-amadatsu:~/environment $ sudo systemctl stop mysql

Stellen Sie sicher, dass es nicht funktioniert ...

Stoppen Sie MySQL(Bestätigung)


y-amadatsu:~/environment $ sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2020-05-15 12:47:38 UTC; 11s ago
 Main PID: 27099 (code=exited, status=0/SUCCESS)

May 15 12:36:21 ip-10-10-10-180 systemd[1]: Starting MySQL Community Server...
May 15 12:36:22 ip-10-10-10-180 systemd[1]: Started MySQL Community Server.
May 15 12:47:36 ip-10-10-10-180 systemd[1]: Stopping MySQL Community Server...
May 15 12:47:38 ip-10-10-10-180 systemd[1]: Stopped MySQL Community Server.
y-amadatsu:~/environment $ ps aux | grep [m]ysql

Deaktivieren Sie den Dienst (deaktivieren Sie die automatische Starteinstellung beim Start).

Deaktivieren Sie den MySQL-Dienst


y-amadatsu:~/environment $ sudo systemctl disable mysql.service
Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable mysql
y-amadatsu:~/environment $ sudo systemctl list-unit-files  mysql.service                                                                                                             
UNIT FILE     STATE   
mysql.service disabled

1 unit files listed.

Installieren Sie nun die erforderlichen Pakete.

Installation der für Schienen erforderlichen Dienste6


y-amadatsu:~/environment $ sudo apt install postgresql libpq-dev redis yarn -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
...Kürzung...
Adding user postgres to group ssl-cert

Creating config file /etc/postgresql-common/createcluster.conf with new version
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/system/postgresql.service.
Setting up libsensors4:amd64 (1:3.4.0-4) ...
Setting up postgresql-client-10 (10.12-0ubuntu0.18.04.1) ...
update-alternatives: using /usr/share/postgresql/10/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode
Setting up redis-tools (5:4.0.9-1ubuntu0.2) ...
Setting up libpq-dev (10.12-0ubuntu0.18.04.1) ...
Setting up sysstat (11.6.1-1ubuntu0.1) ...

Creating config file /etc/default/sysstat with new version
update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service.
Setting up postgresql-10 (10.12-0ubuntu0.18.04.1) ...
Creating new PostgreSQL cluster 10/main ...
/usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --auth-local peer --auth-host md5
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "C.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/10/main ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Etc/UTC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

Success. You can now start the database server using:

    /usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start

Ver Cluster Port Status Owner    Data directory              Log file
10  main    5432 down   postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
update-alternatives: using /usr/share/postgresql/10/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
Setting up postgresql (10+190ubuntu0.1) ...
Setting up redis-server (5:4.0.9-1ubuntu0.2) ...
Created symlink /etc/systemd/system/redis.service → /lib/systemd/system/redis-server.service.
Created symlink /etc/systemd/system/multi-user.target.wants/redis-server.service → /lib/systemd/system/redis-server.service.
Setting up redis (5:4.0.9-1ubuntu0.2) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for systemd (237-3ubuntu10.40) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...

postgres kann bestätigen, dass der postgres-Benutzer korrekt erstellt wurde. Es gibt auch eine Beschreibung wie "Erstellen eines neuen PostgreSQL-Clusters 10 / main ...". Erstellt Postgres jetzt standardmäßig Cluster: Denken:

Wir werden den Betrieb von Postgres später überprüfen, stellen Sie also sicher, dass alles andere korrekt installiert ist.

Bestätigung der Installation


y-amadatsu:~/environment $ redis-cli --version
redis-cli 4.0.9
y-amadatsu:~/environment $ redis-server --version
Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=9435c3c2879311f3
y-amadatsu:~/environment $ yarn --version
1.22.4

redis verfügt über 4 Systeme für Client und Server. Bei Sidekiq6 sind 4 oder mehr erforderlich, dies ist also sicher: entspannt:

Postgres und Redis fungieren auch als Server. Stellen Sie daher sicher, dass sie als Dienste aktiviert sind.

Bestätigung von Redis


y-amadatsu:~/environment $ sudo systemctl list-unit-files redis*.service
UNIT FILE             STATE   
redis-server.service  enabled 
[email protected] disabled
redis.service         enabled 

3 unit files listed.

Überprüfen von PostgreSQL


y-amadatsu:~/environment $ sudo systemctl list-unit-files postgres*.service
UNIT FILE           STATE   
postgresql.service  enabled 
[email protected] indirect

2 unit files listed.

Klingt nach keinem Problem!

Beginnen wir mit Postgres und Redis. Überprüfen Sie den Startstatus.

Bestätigung von Redis


y-amadatsu:~/environment $ sudo systemctl status redis-server
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-05-16 01:34:28 UTC; 32min ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
 Main PID: 962 (redis-server)
    Tasks: 4 (limit: 1121)
   CGroup: /system.slice/redis-server.service
           └─962 /usr/bin/redis-server 127.0.0.1:6379

May 16 01:34:27 ip-10-10-10-180 systemd[1]: Starting Advanced key-value store...
May 16 01:34:28 ip-10-10-10-180 systemd[1]: redis-server.service: Can't open PID file /var/run/redis/redis-server.pid (yet?) after start: No such file or directory
May 16 01:34:28 ip-10-10-10-180 systemd[1]: Started Advanced key-value store.

Überprüfen Sie die Postgres


y-amadatsu:~/environment $ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sat 2020-05-16 01:34:31 UTC; 33min ago
 Main PID: 1386 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 1121)
   CGroup: /system.slice/postgresql.service

May 16 01:34:31 ip-10-10-10-180 systemd[1]: Starting PostgreSQL RDBMS...
May 16 01:34:31 ip-10-10-10-180 systemd[1]: Started PostgreSQL RDBMS.

: bangbang: Übrigens wurde Cloud9 in Bezug auf das obige Protokoll vor und nach der Bestätigung neu gestartet (ich habe es am Tag nach der Installation bestätigt). Wahrscheinlich läuft keiner von beiden, also fangen wir in diesem Fall an.

Starten Sie jeden Dienst


y-amadatsu:~/environment $ sudo systemctl start redis-server.service
y-amadatsu:~/environment $ sudo systemctl start postgresql.service

Es ist perfekt, wenn Sie überprüfen, ob es mit dem Befehl sudo systemctl status ... ordnungsgemäß funktioniert!

Informationen zu postgresql finden Sie im Protokoll zum Zeitpunkt der Installation.

Success. You can now start the database server using:

/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start

In der Ubuntu-Umgebung ist es jedoch bequemer, über systemctl zu starten und zu stoppen, also habe ich dies verwendet.

Alle notwendigen Pakete (vorerst [^ package-install]) sind jetzt verfügbar.

[^ package-install]: Wenn die native Kompilierung während der Bundle-Installation von Gemfile ausgeführt wird, müssen Sie die Bibliothek möglicherweise separat installieren.

Versuchen Sie, Schienen 6 in einem Test zu fahren

Lassen Sie uns den Vorgang überprüfen, während Sie eine Beispiel-Rails6-App mit Bezug auf Railsgarls erstellen. Da es sich um eine Funktionsprüfung handelt, wird eine ausführliche Erklärung weggelassen: erleichtert:

** Schienen installieren **

Schieneninstallation


y-amadatsu:~/environment $ gem install rails --no-document -v "6.0.3"

** Erstellen einer Beispielschienen-App **

Erstellen einer Rails-App


y-amadatsu:~/environment $ rails new sample

Übrigens hat "Rails New Sample" in meiner Umgebung ungefähr 5 Minuten gedauert.

** Funktionsprüfung **

Vom Erstellen der Rails-App bis zum Starten des Servers


y-amadatsu:~/environment $ cd sample/
y-amadatsu:~/environment/sample (master) $ rails g scaffold book
y-amadatsu:~/environment/sample (master) $ rails db:migrate
y-amadatsu:~/environment/sample (master) $ rails server
=> Booting Puma
=> Rails 6.0.3 application starting in development 
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.3 (ruby 2.6.6-p146), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:8080
* Listening on tcp://[::1]:8080
Use Ctrl-C to stop

Lassen Sie es uns mit einem Browser überprüfen. Klicken Sie im oberen Menü unter "Vorschau" auf "Vorschau der laufenden Anwendung".

image.png

Wenn Sie darauf klicken, wird der folgende Fehlerbildschirm angezeigt (teilweise ausgefüllt).

rails.png

Dies ist ein Fehler, der vom neuen Sicherheitsmechanismus von Rails 6 angezeigt wird. Siehe unten für Details.

Probieren Sie die neuen Funktionen von Rails6 78 aus (Guard DNS-Rebiding-Angriffe)

Kopieren Sie die auf dem Fehlerbildschirm angezeigten config.hosts <<" xxxxxxxxxxxxxx.vfs.cloud9.us-east-1.amazonaws.com " wie folgt nach / sample / config / environment / development.rb Bitte hinzufügen und speichern.

image.png

Stoppen Sie den aktuell laufenden Server mit "Strg-C".

Rails-Server stoppen


y-amadatsu:~/environment/sample (master) $ rails server                                 
=> Booting Puma
=> Rails 6.0.3 application starting in development 
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.3 (ruby 2.6.6-p146), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://127.0.0.1:8080
* Listening on tcp://[::1]:8080
Use Ctrl-C to stop
^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2020-05-16 17:31:18 +0900 ===
- Goodbye!
Exiting

Beginnen Sie dann erneut mit "Rails Server" und überprüfen Sie die Vorschau. Außerdem kann ich aus irgendeinem Grund keine Verbindung zum Browser in Cloud 9 herstellen ... Es scheint, dass niemand dies lösen kann, selbst wenn ich versuche zu googeln. Es ist definitiv eine Netzwerkeinstellung ...: frowning2:

Auf der rechten Seite der URL des Bildschirms, der nicht verbunden ist, befindet sich eine "Schaltfläche des Fensters, die sich mit dem Pfeil überschneidet" ("In neues Fenster herausspringen" wird mit der Maus angezeigt). Klicken Sie also darauf. Die Schaltfläche am rechten Ende des Bildes unten.

image.png

Dann können Sie es auf der Registerkarte Ihres Browsers sehen.

image.png

Damit ist die Installation der Rails Girls abgeschlossen!

Versuchen Sie, eine Verbindung zu postgresql herzustellen

Im Moment ist die Datenbank SQLite, ersetzen Sie sie also durch Postgresql.

Ersetzen Sie zunächst die Datei database.yml durch den folgenden Inhalt [^ database.yml]

[^ database.yml]: Ursprünglich ist es sicherer, basierend auf database.yml zu ändern, was das Ergebnis von "Rails New Appname --database = postgresql" in derselben Rails-Version ist.

/config/database.yml


default: &default
  adapter: postgresql
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: postgres
  password: postgres
  host: localhost
  timeout: 5000

development:
  <<: *default
  database: sample_development

test:
  <<: *default
  database: sample_test

production:
  <<: *default
  database: sample_production

Suchen Sie für die Gemfile die Zeile "sqlite3", kommentieren Sie sie aus und fügen Sie "gem'pg" hinzu.

Gemfile


#gem 'sqlite3', '~> 1.4'
gem 'pg'

Ich habe die Gemfile geändert, also lasst uns "Bundle-Installation" erneut durchführen [^ Bundle-Installation].

[^ bundle-install]: Dies gilt auch für bundle update. Persönlich verwende ich "Bundle Update", um nur einzelne Pakete zu aktualisieren.

Installieren Sie die erforderlichen Pakete für Schienen


y-amadatsu:~/environment/sample (master) $ bundle install

Da dies eine Entwicklungsumgebung ist, kann der DB-Benutzer postgres verlassen und das Kennwort einfach festlegen.

Legen Sie das Postgres-Benutzerpasswort fest


y-amadatsu:~/environment/sample (master) $ sudo -u postgres psql                                                 
psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
Type "help" for help.

postgres=# alter role postgres with password 'postgres';
ALTER ROLE
postgres=# \q
y-amadatsu:~/environ

Drücken Sie \ q, um zur Konsole zurückzukehren.

Darüber hinaus sagen andere Websites, dass es notwendig ist, pg_hba.conf zu ändern, aber mit der diesmal installierten PostgreSQL 10-Serie wurden die Mindesteinstellungen zum Zeitpunkt der Installation vorgenommen. Überspringen Sie sie daher. Unten finden Sie einen Auszug aus dem Protokoll während der Installation.

Creating new PostgreSQL cluster 10/main ... /usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --auth-local peer --auth-host md5 The files belonging to this database system will be owned by user "postgres". This user must also own the server process.

Es sollte kein Problem mit den DB-Einstellungen geben [^ postgres-user]. Ich werde sofort gehen.

[^ postgres-user]: Der während der Installation erstellte postgres-Benutzer ist ein sogenannter Superuser, der alles kann, daher ist diese Verwendung NG mit Ausnahme der lokalen Entwicklung. Bitte erstellen Sie einen Benutzer für die App separat.

Von der DB-Erstellung bis zur Startbestätigung


y-amadatsu:~/environment/sample (master) $ rake db:create
y-amadatsu:~/environment/sample (master) $ rake db:migrate
y-amadatsu:~/environment/sample (master) $ rails server

Obwohl es sich um einen einfachen Bildschirm handelt, habe ich bestätigt, dass "/ books" auch ordnungsgemäß aufgelistet werden kann.

image.png

Danke für deine harte Arbeit!

Recommended Posts

Erstellen Sie eine Umgebung, in der Sie Rails Girls oder El-Training mit Clound 9 ausprobieren können
Erstellen Sie eine Umgebung, in der pip3 mit CentOS7 + Python3 verwendet werden kann
Erstellen Sie eine Entwicklungsumgebung, in der die Haltepunkte von Ruby on Rails unter Windows funktionieren
Erstellen Sie eine Umgebung mit Docker unter AWS
Erstellen Sie eine Ultra96v2-Entwicklungsumgebung auf Docker 1
Versuchen Sie, eine Java 8-Umgebung unter Amazon Linux2 zu erstellen
Erstellen Sie eine Laravel-Umgebung auf einer AWS-Instanz
[Rails] So erstellen Sie eine Umgebung mit Docker
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9