Platzi
Platzi

Suscr铆bete a Expert y aprende de tecnolog铆a al mejor precio anual.

Antes: $249
$209
Currency
Antes: $249
Ahorras: $40
COMIENZA AHORA
Termina en: 1D : 15H : 14M : 25S

Instalaci贸n de Ruby, RoR en Mac y Windows5/36

Lectura

Instalaci贸n de Ruby, RoR en Mac y Windows

Objetivo

Instalar el entorno de desarrollo necesario para desplegar aplicaciones con Ruby on Rails incluyendo gestores de versiones, consola de comandos y base de datos en computadores mac usando macOS 10.15 Catalina y Windows 10.

Recomendaciones

No copies y pegues los comandos de la gu铆a dado que en algunas ocasiones podr铆an tener caracteres especiales de formato que podr铆an da帽ar la ejecuci贸n de los mismos, por otro lado, la instalaci贸n se realiza sobre un sistema operativo reci茅n instalado, si tienes una instalaci贸n previa puedes encontrar que algunas respuestas de tus comandos sean diferentes.

Convenciones

~ % (consola de comandos) (debes traspasar el comando sin el s铆mbolo 鈥渵 %鈥)

#=> (salida de comando)

[] (Opcional)

(texto que hay que a帽adir o quitar acorde a la explicaci贸n del paso)

Instalaci贸n de Ruby, RoR en Mac

Introduccion

Al igual que en la instalaci贸n del entorno para Linux, vamos a usar el framework de configuraci贸n oh-my-zsh aprovechando adem谩s que en Catalina, nuestra shell por defecto es zsh. Para hacerlo debes en la terminal de comandos colocar la siguiente instrucci贸n, que encontrar谩s en la p谩gina oficial de github de oh-my-zsh https://github.com/ohmyzsh/ohmyzsh#via-curl

~ % sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

A continuaci贸n te mostrar茅 una respuesta completa de este comando (debes ver esto despu茅s de la ejecuci贸n del comando incluyendo la pregunta de cambio de consola)

__ __

____ / /_ ____ ___ __ __ ____ _____/ /_

/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \

/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /

\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/

/____/ ....is now installed!


Please look over the ~/.bashrc file to select plugins, themes, and options.

p.s. Follow us on https://twitter.com/ohmyzsh

p.p.s. Get stickers, shirts, and coffee mugs at https://shop.planetargon.com/collections/oh-my-zsh

Al final de tu proceso deber谩s ver tu consola con un nuevo estilo como el siguiente:

鉃 ~

Despu茅s de instalar oh-my-zsh debemos instalar un gestor de paquetes, en nuestro caso usaremos Homebrew (ampliamente usado en el mundo de desarrollo de software), puedes seguir las indicaciones de la instalaci贸n desde la siguiente pagina https://brew.sh/ y digitar la siguiente instruccion:

鉃 ~ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Una vez instalado homebrew usamos rbenv como gestor de versiones de Ruby, de igual manera que lo hicimos para la instalaci贸n del ambiente de Linux (puedes ir la secci贸n Instalando RBENV en la lectura Instalaci贸n Entorno de Desarrollo para que obtengas m谩s informaci贸n).

鉃 ~ brew install rbenv ruby-build

Luego debemos a帽adir al archivo .bashrc una configuraci贸n de inicializaci贸n del RBENV

鉃 ~ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bashrc

鉃 ~ source ~/.bashrc

Una vez instalado RBENV vamos a proceder a instalar la versi贸n de ruby 2.7.1 y a establecerla por defecto

鉃 ~ rbenv install 2.7.1
鉃 ~ rbenv global 2.7.1

Ahora, vamos a configurar GIT usando nuestro nombre y cuenta de correo habitual

$ git config --global user.name "Johan Tique"
$ git config --global user.email johan@platzi.com
$ git config --global color.ui true

Para poder mantener los espacios de librer铆as de forma consistente entre versiones y manifiestos usaremos BUNDLER, la cual es una librer铆a que nos permitir谩 gestionar a su vez un conjunto de librer铆as de ruby agrupadas por entornos de trabajo y garantizando la consistencia de versiones y dependencias entre las mismas.

En Ruby, las librer铆as son llamadas gemas, y bundler usa un archivo manifiesto llamado Gemfile para listar todas las gemas que un proyecto tendr谩, bundler puede usar varias fuentes para encontrar de forma p煤blica estas librer铆as en la nube, sin embargo, nosotros vamos a usar dos fuentes rubygems y github.

Para instalar Bundler (que tambi茅n es una gema) usaremos el comando gem que es prove铆do en este caso por RBENV. Tambi茅n habilitaremos el protocolo seguro de HTTP para que cuando se tome github como fuente este sea establecido por defecto.

$ gem install bundler
$ bundle config github.https true

Rails necesita de un motor de javascript para abordar ciertas funcionalidades de compilaci贸n, transformaci贸n y en sus 煤ltimas versiones, funcionalidades de integraci贸n con webpack, es por esta raz贸n que vamos a usar nodejs como nuestro motor, sin embargo, NodeJS podr铆a tener la misma situaci贸n de conflicto de versiones entre ambientes, por lo que que usaremos tambi茅n un gestion de versiones de NodeJS para lidiar con estos escenarios.

NOTA si ya tienes instalado NodeJS u otro motor de javascript compatible con el int茅rprete de javascript V8 o similar, no deber谩s hacer este paso, aunque es ampliamente recomendable usar un gestor de versiones, si lo quieres llegar a usar debes desinstalar el int茅rprete de javascript que tengas instalado para evitar conflictos futuros.

Para gestionar las versiones de NodeJS usaremos NODENV ejecutando la siguiente secuencia de comandos, que instalar谩 el NODENV, a帽adir谩 sus binarios a la variable de entorno PATH, e instalar谩 la versi贸n 12.17.0 de NodeJS.

$ brew install nodenv
$ echo 'eval "$(nodenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ nodenv install 12.17.0
$ nodenv global 12.17.0

Instalando el ambiente de desarrollo con Rails y PostgreSQL

Habiendo instalado RBENV y BUNDLER ya podemos empezar a instalar todas las gemas, herramientas y servidores necesarios para poder seguir adelante con nuestros primeros pasos con Ruby on Rails

Vamos a instalar Ruby on Rails usando el siguiente comando (si, Rails es tambi茅n una gema)

$ gem install rails

Rails instalar谩 con varias gemas como dependencias para su ejecuci贸n, as铆 que obtendremos una instalaci贸n con una larga lista de librer铆as, al final podr谩s corroborar la versi贸n de Rails usando el comando de abajo, que en nuestro caso ser谩 la versi贸n 6.0.3.2

$ rails -v
#=> Rails 6.0.3.2

Las versiones de Rails superiores a la 6, requieren usar YARN como gestor de paquetes de javascript y habilitar el enlace de Webpack usando la tecnolog铆a Webpacker, para esto, vamos a usar nuevamente Homebrew

$ brew install yarn

Finalmente, vamos a instalar la base de datos de postgreSQL y configurar un usuario para poder gestionarla

$ brew install postgresql

Una vez instalado iniciaremos el servicio de la base de datos

$ brew services start postgresql

Una vez inicializado postgreSQL, entraremos a la sesi贸n del mismo y crearemos desde all铆 un nuevo usuario con capacidad de crear bases de datos (de usuario platzi, rol platzi y contrase帽a platzi), y que usaremos para nuestras futuras aplicaciones, para hacerlo debemos seguir el siguiente conjunto de instrucciones (No tener en cuenta el prefijo postgres=# para su ejecuci贸n):

$ psql postgres
postgres=# CREATE ROLE platzi WITH LOGIN PASSWORD 'platzi';
postgres=# ALTER ROLE platzi CREATEDB;

Para salir de la sesi贸n de postgreSQl debemos usar el comando \q

Instalaci贸n de Ruby, RoR en Windows 10

La instalaci贸n del entorno de desarrollo en Windows la haremos usando un subsistema de windows para Linux, de esta forma podr谩s usar una consola tipo Linux que te facilitara la ejecuci贸n de instrucciones y har谩 que tu sistema operativo sea m谩s compatible con la documentaci贸n que encuentres en este curso y en la internet.

Como te he mencionado arriba, Windows 10 te permite correr una virtualizaci贸n nativa de Linux , y usaremos este entorno para instalar todas nuestras herramientas, para preparar nuestro sistema operativo debemos abrir un PowerShell y ejecutalo como administrador como es referenciado en la imagen de abajo.

Una vez all铆, ejecuta las siguientes tres instrucciones

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Seguido de esto, vamos a abrir el Microsoft Store, buscar el paquete de Ubuntu 20.04 LTS e instalarlo

Una vez instalado, debemos buscar y ejecutar el paquete Ubuntu 20.04 desde el buscador de Windows, al inicio este nos solicitara que creemos un usuario y una nueva contrase帽a, para nuestro caso ser谩 platzi

NOTA IMPORTANTE

No debes usar el usuario superusuario (root) a menos que de forma expl铆cita se especifique que este debe ser usado a trav茅s del comando 鈥渟udo鈥, de otra forma no debes usarlo as铆 como tampoco sus variaciones como 鈥$ sudo su鈥

El programa 鈥渟udo鈥 pronunciado 鈥淪UDU鈥 /su藧du藧/ es normalmente interpretado como 鈥渟uperuser do鈥︹ y permite al comando inmediatamente siguiente, correr con los permisos de otro usuario que tiene condiciones especiales de seguridad o permisos, com煤nmente sudo se usa para invocar los permisos del superusuario del sistema operativo, sin embargo, en las 煤ltimas versiones de sistemas compatibles con Linux no s贸lo puede ejecutar como superusuario sino tambi茅n es posible usar otros tipos especiales de usuario. Sin embargo, nosotros usaremos 鈥渟udo鈥 para usar los permisos de superusuario.

Adecuaci贸n del sistema operativo

Instalaci贸n de librer铆as base

Usando sudo y y el comando apt-get (como gestor de paquetes) vas a actualizar los enlaces a los repositorios de las librer铆as que se pueden instalar en el sistema operativo as铆 como sus dependencias.

$ sudo apt-get update

Deber谩s obtener una respuesta de varias l铆neas al comando con la actualizaci贸n de la lista de paquetes y una l铆nea final mencionado que la lectura de las listas de paquetes ha sido finalizada similar a lo siguiente:

Reading package lists... Done

Ahora vamos a instalar las librerias necesarias usando sudo y el comando apt install

$ sudo apt install build-essential curl wget openssl libssl-dev libreadline-dev dirmngr zlib1g-dev libmagickwand-dev imagemagick-6.q16 libffi-dev libpq-dev cmake libwebp-dev

Para autorizar la instalaci贸n deber谩s aceptar la continuaci贸n del proceso digitando la letra Y y dando enter

Do you want to continue? [Y/n]

Las librer铆as instaladas cumplir谩n con los siguientes prop贸sitos:

  • build-essentials: contiene herramientas para compilar y construir software desde sus fuentes usando generalmente lenguaje C y sus derivados

  • curl: es una herramienta para transferir informaci贸n de un servidor a otro usando diversos tipos de protocolos, entre esos: HTTP, FTP, IMAP entre otros

  • wget: es una herramienta para recibir contenido desde la web usando los protocolos m谩s comunes como HTTP y FTP

  • openssl: es un robusto conjunto de librer铆as que te permitir谩n manipular y leer contenido de los protocolos TLS y SSL, que son usados para garantizar la seguridad y encriptaci贸n de las comunicaciones entre servidores y clientes.

  • libssl-dev: es una librer铆a que forma parte de OpenSSL usada para lidiar con procesos de encriptaci贸n, este paquete, contiene librer铆as de desarrollo, cabeceras de compilaci贸n entre otro tipos de archivos.

  • libreadline-dev: aporta la librer铆as de desarrollo para el paquete readline que ayuda a la consistencia de interfaces de usuario que est谩n asociadas a l铆neas interactivas de comandos.

  • dirmngr: es un peque帽o servidor para gestionar y descargar certificados de tipo X.509 y la lista de revocaci贸n de los mismos.

  • zlib1g-dev: aporta librer铆as de desarrollo para soportar mecanismos de compresi贸n y descompresi贸n compatibles con GZIP y PKZIP, tecnolog铆as de compresi贸n comunes en paquetes de herramientas para nuestro entorno.

  • imagemagick-6.q16: es un programa que permite editar, crear y componer mapas de bits en im谩genes.

  • libmagickwand-dev: es un conjunto de librer铆as de desarrollo para compilar librer铆as necesarias para el uso de MagickWand, este 煤ltimo es la tecnolog铆a predilecta como interface del lenguaje de programaci贸n C a ImageMagick.

  • libffi-dev: provee librer铆as de desarrollo para habilitar mecanismos de alto nivel para el uso de calling conventions sobre ciertos compiladores, de esta forma esta librer铆a le permite al desarrollador invocar cualquier funci贸n espec铆fica por medio de una llamada en tiempo de ejecuci贸n.

  • libpq-dev: esta librer铆a contiene paquetes de desarrollo para habilitar el uso de conjuntos de binarios y cabeceras requeridas para construir componentes externos para PostgreSQL

  • cmake: es usado para controlar el proceso de compilaci贸n de software usando un m茅todo independiente del compilador.

  • libwebp-dev: habilita un conjunto de librer铆as de desarrollo para el manejo de formatos de im谩genes de nueva generaci贸n compatibles con WebP

Instalaci贸n de GIT

A continuaci贸n instalaremos nuestro sistema para controlar versiones de nuestro c贸digo, para este caso usaremos GIT, y procederemos a su instalaci贸n usando el siguiente comando

$ sudo apt install git

Una vez instalado GIT configuraremos de forma global algunas variables

$ git config --global user.name "Johan Tique"
$ git config --global user.email johan@platzi.com
$ git config --global color.ui true

Solo si tu conexi贸n a internet est谩 habilitada a trav茅s de un proxy (muy com煤n en las instituciones p煤blicas) debemos configurarlo de la siguiente manera

$ git config --global http.proxy http://proxy.alu.uma.es:3128
$ git config --global https.proxy https://proxy.alu.uma.es:3128

Instalando RBENV

Imagina que est谩s trabajando en varios proyectos con Ruby y Ruby on Rails, y que todos tengan diferentes versiones鈥 驴c贸mo haces para garantizar que todas librerias, versiones y paquetes sean consistentes en cada uno de los proyectos?

Bien, para resolver esto debemos usar gestores de versiones, en este caso usaremos RBENV, no debes confundirte con controladores de versiones (como GIT), son dos tecnolog铆as con prop贸sitos distintos, pero que se complementan.

Para instalar RBENV debemos ejecutar el siguiente comando

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash

Al final de la ejecuci贸n del comando deber谩s ver un texto similar a este, mencionando que a pesar de haber instalado RBENV este no se encuentra en la variable de entorno PATH

Running doctor script to verify installation...
Checking for `rbenv' in PATH: not found
You seem to have rbenv installed in `/home/platzi/.rbenv/bin', but that
directory is not present in PATH. Please add it to PATH by configuring

your `~/.bashrc', `~/.bashrc', or `~/.config/fish/config.fish'.

Para a帽adir a la variable de entorno PATH los binarios de RBENV y a su vez ejecutarlo cada vez que exista una nueva sesi贸n, debemos agregar dos l铆neas al archivo .bashrc que hab铆amos visto antes, pero esta vez solo usaremos la consola para hacerlo, de la siguiente manera:

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

Una vez instalado RBENV vamos a usarlo para instalar la versi贸n 2.7.1 ejecutando lo siguiente (la instalaci贸n suele tardar unos minutos, as铆 que asegurate de tener una buena velocidad y estabilidad de internet)

$ rbenv install 2.7.1

RBENV est谩 en la capacidad de gestionar un sin n煤mero de versiones de ruby as铆 como sus espacios de librer铆as de forma independiente, as铆 que vamos a establecer la versi贸n 2.7.1 como la versi贸n por defecto y global, usando el siguiente comando.

$ rbenv global 2.7.1

Para poder mantener los espacios de librer铆as de forma consistente entre versiones y manifiestos usaremos BUNDLER, la cual es una librer铆a que nos permitir谩 gestionar a su vez un conjunto de librer铆as de ruby agrupadas por entornos de trabajo y garantizando la consistencia de versiones y dependencias entre las mismas.

En Ruby, las librer铆as son llamadas gemas, y bundler usa un archivo manifiesto llamado Gemfile para listar todas las gemas que un proyecto tendr谩, bundler puede usar varias fuentes para encontrar de forma p煤blica estas librer铆as en la nube, sin embargo, nosotros vamos a usar dos fuentes rubygems y github.

Para instalar Bundler (que tambi茅n es una gema) usaremos el comando gem que es prove铆do en este caso por RBENV. Tambi茅n habilitaremos el protocolo seguro de HTTP para que cuando se tome github como fuente este sea establecido por defecto.

$ gem install bundler
$ bundle config github.https true

Rails necesita de un motor de javascript para abordar ciertas funcionalidades de compilaci贸n, transformaci贸n y en sus 煤ltimas versiones, funcionalidades de integraci贸n con webpack, es por esta raz贸n que vamos a usar nodejs como nuestro motor, sin embargo, NodeJS podr铆a tener la misma situaci贸n de conflicto de versiones entre ambientes, por lo que que usaremos tambi茅n un gestion de versiones de NodeJS para lidiar con estos escenarios.

NOTA si ya tienes instalado NodeJS u otro motor de javascript compatible con el interprete de javascript V8 o similar, no deber谩s hacer este paso, aunque es ampliamente recomendable usar un gestor de versiones, si lo quieres llegar a usar debes desinstalar el int茅rprete de javascript que tengas instalado para evitar conflictos futuros.

Para gestionar la versiones de NodeJS usaremos NODENV ejecutando la siguiente secuencia de comandos, que instalar谩 el NODENV, a帽adir谩 sus binarios a la variable de entorno PATH, e instalar谩 la versi贸n 12.17.0 de NodeJS.

$ curl -fsSL https://raw.githubusercontent.com/nodenv/nodenv-installer/master/bin/nodenv-installer | bash
$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(nodenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ nodenv install 12.17.0
$ nodenv global 12.17.0

Instalando el ambiente de desarrollo con Rails y PostgreSQL

Habiendo instalado RBENV y BUNDLER ya podemos empezar a instalar todas las gemas, herramientas y servidores necesarios para poder seguir adelante con nuestros primeros pasos con Ruby on Rails

Vamos a instalar Ruby on Rails usando el siguiente comando (si, Rails es tambi茅n una gema).

$ gem install rails

Rails instalar谩 con varias gemas como dependencias para su ejecuci贸n, as铆 que obtendremos una instalaci贸n con una larga lista de librer铆as, al final podr谩s corroborar la versi贸n de Rails usando el comando de abajo, que en nuestro caso ser谩 la versi贸n 6.0.3.2

$ rails -v
#=> Rails 6.0.3.2

Las versiones de Rails superiores a la 6, requieren usar YARN como gestor de paquetes de javascript y habilitar el enlace de Webpack usando la tecnolog铆a Webpacker, para esto, vamos a usar la versi贸n oficial de los repositorios de YARN a trav茅s de los siguientes comandos

$ sudo curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

$ sudo sh -c "echo 'deb https://dl.yarnpkg.com/debian/ stable main' >> /etc/apt/sources.list"

$ sudo apt update

Para instalar YARN vamos a usar el comando de abajo, y usaremos nuestra versi贸n de NodeJS instalada en el paso anterior usando la opci贸n --no-install-recommends

$ sudo apt --no-install-recommends install yarn

Finalmente, vamos a instalar la base de datos de postgreSQL descargando el ejecutable desde esta pagina https://www.postgresql.org/download/windows/ recuerda el usuario y la contrase帽a que asignes en el proceso de instalaci贸n, dado que lo necesitaremos para la configuraci贸n de Rails.

Accediendo a mi c贸digo

Para usar el sistema de directorios de windows dentro del ambiente de Linux, debes utilizar la siguiente instrucci贸n que acceder谩 a la ra铆z de la unidad C y a partir de all铆 ejecutar tus comandos

$ cd /mnt/c

Alli podras crear directorios de trabajo que podr谩s acceder desde cualquier editor de texto en tu entorno windows, para nuestro curso haremos el directorio coding/platzi

$ mkdir -p coding/platzi

Aportes 18

Preguntas 3

Ordenar por: