[RUBY] Créez un environnement où vous pouvez essayer Rails Girls ou el-training avec Clound 9

introduction

Étudions Ruby (https://github.com/everyleaf/el-training) comme Rails Gilrs et [el-training] qui est un programme pour la formation des nouveaux employés de M. Manyo. Ceci est un guide de construction d'environnement pour ceux qui n'ont pas de Mac ou qui ont des spécifications de PC médiocres.

: bangbang: En ce qui concerne RailsGirls, veuillez noter que l'objectif n'est pas la participation, mais pour ceux qui veulent essayer le coaching mais ne sont pas doués pour créer un environnement (y a-t-il une telle personne?): Bow:

À quoi ressemble RailsGirls? Lorsque j'ai sorti une machine Windows que je n'utilise pas normalement et que je l'ai construite sur WSL, il a fallu une heure pour vérifier le fonctionnement des rails (il était naturel que le PC soit impuissant, peut-être qu'il s'agissait d'un disque dur au lieu d'un SSD. Est une cause majeure), alors je l'ai construit sur Cloud9.

Si vous effectuez une recherche sur le net, vous trouverez autant de choses que vous le souhaitez, mais c'était différent de l'environnement que vous vouliez, donc cela sert également de mémo. De plus, j'ai essayé de le résumer soigneusement pour qu'il soit utile même si le temps passe depuis la publication de cet article.

Objectif de cet article de construction

--Réalisations dans Rails Girls -Equivalent à l'achèvement du "Guide d'installation"

conditions

Procédure de construction

Du démarrage de Cloud 9 au démarrage du terminal

Veuillez commencer par le démarrer. image.png

Ouvrez un nouveau terminal.

image.png

Une fois ouvert, le terminal démarrera avec le répertoire ~ / environnement comme répertoire courant. Apparemment, dans Cloud9, il semble être une bonne idée de placer les fichiers de projet, etc. sous ce répertoire.

image.png

Changer de fuseau horaire

La date n'est pas à l'heure du Japon (UTC).

Vérifiez la date


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

Commençons par changer le fuseau horaire.

Vérifiez le fuseau horaire


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

Si vous cochez le fuseau horaire à définir, il ressemble à «Asie / Tokyo».

Réglage du fuseau horaire


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

J'ai pu confirmer qu'il a été changé à l'heure du Japon avec la commande date.

Jusqu'à l'installation de Ruby

Vérifiez la version Ruby. C'est un peu vieux, alors préparez-vous à installer la nouvelle version.

Vérifiez l'état d'installation de 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

Par défaut, rvm a été installé, mais comme j'utilise habituellement rbenv, je vais le réinstaller.

Tout d'abord, rvm, au revoir: main_levée:

Désinstaller rvm


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).

À la fin, il y a une instruction pour supprimer les fichiers inutiles, etc., mais dans mon environnement démarré en tant qu'environnement [^ aws-environment] pour la première fois, il semble gênant de simplement exécuter des rails, donc je vais procéder tel quel. Si vous rencontrez par la suite des problèmes tels que la commande ruby introuvable ou la version de ruby exécutée étant différente, vous devez revoir les paramètres ci-dessus.

[^ aws-environment]: environnement d'exploitation Cloud9 (environnement).

Maintenant, installez rbenv. Continuez en observant la procédure d'installation du site Honke.

Installez 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'

Cette fois, je l'ai essayé selon la procédure d'installation, mais à partir de maintenant, je pense qu'il est préférable de remplacer sudo apt-get update par sudo apt update et de s'y habituer [^ apt-get].

[^ apt-get]: Voir https://linuxfan.info/package-management-ubuntu. Bien qu'apt ait été recommandé et se démarque un peu, il existe de nombreuses descriptions qui ne sont pas à jour sur le net comme celle-ci.

Aussi, j'ai essayé cd ~ / .rbenv && src / configure && make -C src pour Bash. Je pense qu'il va s'accélérer car il est compilé, mais il est généralement inutile [^ rbenv-compile]. Il a changé pour le répertoire actuel ~ / .rbenv, mais je vais continuer sans m'en soucier ...

[^ rbenv-compile]: Je pense qu'il n'y a pas de problème car il est assez rapide tel quel. Au contraire, je pense que je vais devoir le compiler à nouveau lorsque je mettrai à jour rbenv lui-même à l'avenir, mais je pense que je vais probablement l'oublier à ce moment-là: angel:

paramètres de rbenv(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 -)"

Ajoutez à .bash_profile comme indiqué.

paramètres de rbenv(2)


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

Fermez et rouvrez le terminal comme indiqué [^ source] Continuer. [^ source]: Si vous recherchez sur le net, vous trouverez de nombreuses explications sur la procédure pour exécuter source ~ / .bash_profile. Ce n'est pas une erreur, mais si vous suivez les instructions d'installation (également appelées informations primaires) du fournisseur de logiciels, les chances de rencontrer un problème inconnu diminueront, il est donc recommandé de suivre les instructions honnêtement jusqu'à ce que vous vous y habituiez. Aussi, je voulais omettre l'explication du mouvement des répertoires ici.

C'est un programme de diagnostic comme brew docker.

paramètres de rbenv(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

Naturellement parce que ruby-build n'est pas inclus

Checking `rbenv install' support: not found

Cependant, le point semble un peu déroutant car l'exemple est affiché dans l'état déjà installé dans la procédure d'installation de rbenv. Cependant, continuons en regardant https://github.com/rbenv/ruby-build#installation comme indiqué.

Cette fois, nous allons procéder à l'installation comme un plug-in rbenv qui semble être courant.

paramètres de rbenv(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

C'est bon. Maintenant, installez ruby. Cette fois, j'ai installé 2.6.6, qui est la dernière version de la série ruby2.6. Si EC2 est t2.micro, cela prendra un certain temps: café: Cela m'a pris environ 10 minutes ... (je me souviens avoir volé: ange :)

installation de rubis


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]

D'accord, l'installation est terminée!

Installation des packages requis et prise en charge des packages inutiles (mysql)

Cette fois, nous allons exécuter rails6, donc installez les packages requis.

En guise de préparation préliminaire, activez l'installation du fil via apt. Reportez-vous au Site officiel et enregistrez d'abord la clé publique pour le dépôt de paquets Debian et définissez apt avant l'installation.

Enregistrement du référentiel de fils


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

Assurez-vous de faire sudo apt update lorsque vous ajoutez un dépôt.

Mettre à jour la liste des paquets apt


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.

Lorsque j'ai importé la dernière liste de packages, il semble que de nombreux packages puissent être mis à jour, je vais donc la mettre à jour à ce moment.

Application des packages de mise à jour(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:
...réduction...
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) ...

La mise à jour est terminée ... et j'ai remarqué dans le journal de: point_up: que mysql est déjà là ...

Vérifiez le processus mysql


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

Après tout, il était inclus. ~~ Pour des raisons religieuses ~~ Cette fois, ce n'est pas nécessaire, donc je vais d'abord m'en occuper. Arrêtez d'abord le service, puis désactivez le service de package.

Après avoir arrêté le service ...

Arrêter mysql


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

Assurez-vous que cela ne fonctionne pas ...

Arrêter mysql(Vérification)


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

Désactivez le service (désactivez le paramètre de démarrage automatique au démarrage).

Désactiver le service mysql


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.

Maintenant, installez les packages requis.

Installation des services requis pour les rails6


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:
...réduction...
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 peut confirmer que l'utilisateur postgres a été créé correctement. En outre, il existe une description telle que «Créer un nouveau cluster PostgreSQL 10 / main ...». Postgres crée-t-il maintenant des clusters par défaut: en pensant:

Nous vérifierons le fonctionnement de postgres plus tard, alors assurez-vous que tout le reste est correctement installé.

Confirmation de l'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 dispose de 4 systèmes pour le client et le serveur. Avec sidekiq6, 4 ou plus sont nécessaires, donc c'est sûr: détendu:

De plus, les postgres et les redis fonctionnent comme des serveurs, assurez-vous donc qu'ils sont activés en tant que services.

Confirmation de 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.

Vérification de PostgreSQL


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

2 unit files listed.

Sonne comme aucun problème!

Commençons postgres et redis. Vérifiez l'état de démarrage.

Confirmation de 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.

Vérifier 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: En passant, concernant le journal ci-dessus, Cloud9 a été redémarré avant et après la confirmation (je l'ai confirmé le lendemain de l'installation). Probablement ni l'un ni l'autre n'est en cours d'exécution, alors commençons dans ce cas.

Démarrez chaque service


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

C'est parfait si vous vérifiez que cela fonctionne correctement avec la commande sudo systemctl status ...!

Pour postgresql, consultez le journal au moment de l'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

Cependant, dans l'environnement Ubuntu, il est plus pratique de démarrer et d'arrêter via systemctl, donc j'ai utilisé ceci.

Tous les packages nécessaires (pour le moment [^ package-install]) sont maintenant disponibles.

[^ package-install]: Si la compilation native s'exécute pendant l'installation groupée de Gemfile, vous devrez peut-être installer la bibliothèque séparément.

Essayez de faire rouler les rails 6 dans un test

Vérifions le fonctionnement en créant un exemple d'application rails6 en référence à railsgarls. Puisqu'il s'agit d'un contrôle d'opération, une explication détaillée est omise: soulagée:

** Installer des rails **

Installation de rails


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

** Création d'un exemple d'application de rails **

Créer une application de rails


y-amadatsu:~/environment $ rails new sample

Au fait, "rails new sample" a pris environ 5 minutes dans mon environnement.

** Contrôle de fonctionnement **

De la création d'une application de rails au démarrage du serveur


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

Vérifions-le avec un navigateur. Cliquez sur «Aperçu de l'application en cours» dans «Aperçu» dans le menu supérieur.

image.png

Lorsque vous cliquez dessus, l'écran d'erreur suivant s'affiche (partiellement rempli)

rails.png

Il s'agit d'une erreur affichée par le nouveau mécanisme de sécurité de Rails 6. Voir ci-dessous pour plus de détails.

Essayez les nouvelles fonctionnalités de Rails6 78 (Guard DNS rebiding attack)

Copiez le config.hosts <<" xxxxxxxxxxxxxx.vfs.cloud9.us-east-1.amazonaws.com " affiché sur l'écran d'erreur dans / sample / config / environnements / development.rb comme suit Veuillez ajouter et enregistrer.

image.png

Arrêtez le serveur en cours d'exécution avec Ctrl-C.

Serveur de rails d'arrêt


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

Puis recommencez avec rails server et revérifiez l'aperçu. De plus, je ne peux pas me connecter avec le navigateur sur Cloud 9 pour une raison quelconque ... Il semble que personne ne puisse résoudre cela même si j'essaye de google. C'est définitivement un paramètre réseau ...: froncer les sourcils2:

Ainsi, à droite de l'URL de l'écran auquel vous ne pouvez pas vous connecter, il y a un "bouton de la fenêtre qui chevauche la flèche" ("Pop Out into New Window" est affiché en survolant la souris), donc cliquez dessus. Le bouton à l'extrémité droite de l'image ci-dessous.

image.png

Ensuite, vous pouvez le voir dans l'onglet de votre navigateur.

image.png

Ceci termine l'installation des rails filles!

Essayez de vous connecter à postgresql ci-dessous

Pour le moment, la base de données est sqlite, remplacez-la par postgresql.

Tout d'abord, remplacez le fichier database.yml par le contenu suivant [^ database.yml]

[^ database.yml]: À l'origine, il est plus sûr de modifier en fonction de database.yml qui est le résultat de rails new appname --database = postgresql dans la même version de rails.

/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

Pour le Gemfile, trouvez la ligne sqlite3, commentez-la et ajoutez gem'pg'.

Gemfile


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

J'ai modifié le Gemfile, alors faisons à nouveau bundle install [^ bundle-install].

[^ bundle-install]: C'est la même chose pour bundle update. Personnellement, j'utilise bundle update pour mettre à niveau uniquement des packages individuels.

Installez les packages requis pour les rails


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

Puisqu'il s'agit d'un environnement de développement, l'utilisateur de la base de données quittera postgres et définira facilement le mot de passe.

Définir le mot de passe utilisateur postgres


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

Appuyez sur \ q pour revenir à la console.

De plus, d'autres sites disent qu'il est nécessaire de modifier pg_hba.conf, mais avec la série PostgreSQL 10 installée cette fois, les paramètres minimums ont été définis au moment de l'installation, alors sautez-le. Vous trouverez ci-dessous un extrait du journal lors de l'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.

Il ne devrait y avoir aucun problème avec les paramètres de la base de données [^ postgres-user]. J'irai aussitôt.

[^ postgres-user]: L'utilisateur postgres créé lors de l'installation est un soi-disant super utilisateur qui peut tout faire, donc cette utilisation est NG sauf pour le développement local. Veuillez créer un utilisateur pour l'application séparément.

De la création de la base de données à la confirmation du démarrage


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

Bien que ce soit un écran simple, j'ai confirmé que / books peut également être répertorié correctement.

image.png

Je vous remercie pour votre travail acharné!

Recommended Posts

Créez un environnement où vous pouvez essayer Rails Girls ou el-training avec Clound 9
Créer un environnement où pip3 peut être utilisé avec CentOS7 + Python3
Créez un environnement de développement où les points d'arrêt de Ruby on Rails fonctionnent sous Windows
Créer un environnement avec Docker sur AWS
Créer un environnement de développement Ultra96v2 sur Docker 1
Essayez de créer un environnement Java 8 sur Amazon Linux2
Créer un environnement Laravel sur une instance AWS
[Rails] Comment créer un environnement avec Docker
Créer un environnement de développement Ruby on Rails sur AWS Cloud9