Cómo instalar Ruby on Rails en Ubuntu 22.04

Ruby on Rails o RoR es un marco de trabajo de aplicaciones web gratuito y de código abierto escrito en Ruby y publicado bajo la licencia MIT. Rails es un marco web completo para construir fácilmente aplicaciones de nivel empresarial. Rails viene con diferentes herramientas que permiten a los desarrolladores crear fácilmente aplicaciones tanto de frontend como de backend. Ruby on Rails también tiene características de seguridad integradas, como la protección contra ataques comunes como la inyección SQL, XSS y CSRF.

Ruby on Rails proporciona una estructura predeterminada para la base de datos, la representación de plantillas HTML, un servicio web y una página web. Sigue la arquitectura modelo-vista-controlador (MVC) y también utiliza filosofías de diseño bien conocidas, como No te repitas (DRY), Convención sobre la configuración (CoC) y el patrón de registros activos. Ruby on Rails fue diseñado para ser rápido y fácil de usar y aprender, algunos sitios notables desarrollados con Rails como Twitch, Airbnb, Github, Soundcloud, etc.

En este tutorial, te mostraremos cómo instalar Ruby on Rails en un servidor Ubuntu 22.04. También aprenderás a iniciar un nuevo proyecto/aplicación con Ruby on Rails y a utilizar PostgreSQL como base de datos para tu aplicación Rails.

Requisitos previos

  • Una máquina Ubuntu 22.04
  • Un usuario no root con privilegios de root
  • Un servidor PostgreSQL instalado en tu máquina Ubuntu. En este ejemplo, utilizarás PostgreSQL como base de datos principal para Ruby on Rails.

Instalación de las dependencias de los paquetes

Antes de empezar a instalar Rails, necesitarás instalar algunas dependencias de paquetes básicos para el desarrollo de Rails, esto incluye yarn y nodejs.

Ahora vamos a empezar a instalar el paquete básico gnupg2, apt-transport-https, y curl en tu máquina Ubuntu utilizando el siguiente comando.

sudo apt install gnupg2 apt-transport-https curl

A continuación, ejecuta el siguiente comando para añadir el repositorio Nodesource para instalar el paquete Nodejs. Por defecto, aquí se instalará la última versión LTS de Nodejs v16.

curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

Ahora añade la clave GPG y el repositorio para el paquete Yarn. Yarn es un moderno gestor de paquetes para Nodejs, una alternativa para npm o gestor de paquetes de Node.

curl -sS -o /etc/apt/trusted.gpg.d/yarn.gpg https://dl.yarnpkg.com/debian/pubkey.gpg
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Ahora actualiza y refresca todos los repositorios disponibles con el siguiente comando.

sudo apt update

Por último, puedes instalar algunas dependencias de paquetes utilizando el siguiente comando apt. Esto instalará algunos paquetes básicos que incluyen los build-essentials que se utilizarán para instalar Ruby en tu máquina Ubuntu.

sudo apt install git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs yarn

Introduce Y para confirmar la instalación y pulsa ENTER para continuar. Ahora comenzará la instalación.

Configurar Rbenv

Ahora vas a instalar Rbenv, el gestor del entorno Ruby para tu aplicación. El uso de rbenv, te permite especificar la versión de Ruby para tus aplicaciones, lo que es potente para el entorno de desarrollo. Además, Rbenv es más sencillo y más sólido que otros gestores de Ruby como RVM.

Rbenv es una gestión extensible de Ruby para tu entorno de desarrollo. Es extensible a través de los plugins de Rbenv.

Para configurar Rbenv, tienes que acceder a tu usuario mediante el siguiente comando. Este ejemplo utiliza el nombre de usuario‘alice‘ para el entorno de desarrollo de Rails.

su - alice

Clona el Rbenv en el directorio ~/.rbenv utilizando el comando git de abajo.

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Para activar Rbenv, añade la configuración al archivo ~/ .bashrc utilizando el siguiente comando. A continuación, vuelve a cargar tu sesión de bash.

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

A continuación, también necesitarás el plugin de Rbenv llamado ruby-build. Este plugin te permite instalar cualquier versión de Ruby prácticamente desde el código fuente.

Clona el plugin ruby-build con el siguiente comando.

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

Ahora activa el plugin ruby-build y recarga tu sesión de bash utilizando el siguiente comando.

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Ahora has completado la configuración de Rbenv. Puedes utilizar el siguiente comando para verificar tu instalación de Rbenv. Este comando mostrará todas las opciones/comandos disponibles para Rbenv.

rbenv commands

A continuación puedes ver la lista de comandos disponibles.

comandos rbenv

Instalar Ruby con Rbenv

Después de haber instalado con éxito Rbenv con el plugin ruby-build, ahora vas a instalar Ruby para el desarrollo de Rails.

Instala la última versión estable de Ruby v3.1.2 en tu sistema utilizando el comando rbenv que aparece a continuación.

rbenv install 3.1.2

Este comando instalará el Ruby v3.1.2 desde el código fuente a tu entorno de desarrollo. Los comandos que se instalan aquí forman parte del plugin ruby-build.

A continuación, ejecuta el comando rbenv que aparece a continuación para configurar la versión Ruby v3.1.2 por defecto para tu aplicación.

rbenv global 3.1.2

Comprueba y verifica la versión de Ruby en tu entorno utilizando el siguiente comando.

ruby -v

A continuación puedes ver la captura de pantalla de Ruby 3.1.2 instalado en tu entorno.

instalar ruby con rbenv

Por último, también necesitarás instalar bunlder para tu entorno de desarrollo Rails. Puedes instalar el bundler utilizando el comando gem que aparece a continuación.

gem install bundler

A continuación se muestra la salida después de instalar el bundler.

instalar bundler

Instalación de Ruby on Rails

Llegados a este punto, has completado la instalación de las dependencias de los paquetes para Ruby on Rails, esto incluye Node.js, Yarn y Ruby.

Ahora vas a instalar Ruby on Rails en tu sistema Ubuntu. En este ejemplo, instalarás Rails v7.0.2.4 para el desarrollo de tu aplicación.

Ejecuta el siguiente comando gem para instalar Rails v7.0.2.4.

gem install rails -v 7.0.2.4

El comando llevará tiempo porque hay muchas gemas de Ruby adicionales que deben instalarse. A continuación se muestra la captura de pantalla de la instalación de Rails.

instalación de rieles

Una vez completada la instalación de Rails, ejecuta el siguiente comando para recargar el entorno Rbenv.

rbenv rehash

Por último, puedes comprobar tu instalación de Rails utilizando el siguiente comando.

Comprueba la versión de Rails utilizando el siguiente comando.

rails -v

A continuación puedes ver la versión de Ruby on Rails instalada en la máquina Ubuntu.

comprueba la versión de los raíles

Comprobando todas las opciones disponibles del comando Rails.

rails help

Configurar la base de datos

Antes de crear un nuevo proyecto/aplicación Rails, tendrás que decidir qué base de datos vas a utilizar para el proyecto. En este ejemplo, utilizarás PostgreSQL como base de datos para la aplicación del proyecto Rails. Así que antes de empezar, asegúrate de que el servidor de bases de datos PostgreSQL está instalado en tu máquina Ubuntu.

En primer lugar, instala el paquete libpq-dev en tu máquina Ubuntu utilizando el comando apt que aparece a continuación. Esto instalará automáticamente la libpq5, que es la biblioteca que permite a los usuarios o programas conectarse y comunicarse con el servidor de bases de datos PostgreSQL.

sudo apt install libpq-dev -y

instalar libpq-dev

Una vez completada la instalación de la biblioteca PostgreSQL, ejecuta el siguiente comando para crear un nuevo rol PostgreSQL para tu aplicación. En este ejemplo, crearás un rol llamado ‘alice’, que es el mismo nombre de usuario de Linux que se utiliza actualmente para el proyecto.

sudo -u postgres createuser -S -d -r -P alice

Ahora se te pedirá que establezcas la contraseña para el nuevo rol ‘alice’. Introduce y repite la contraseña.

A continuación se detalla la opción de los comandos:

  • -S – Desactivar el superusuario o admin de PostgreSQL para el nuevo usuario.
  • -d – Conceder privilegios para crear una nueva base de datos en el servidor PostgreSQL.
  • -r – Conceder privilegios para crear un rol en el servidor PostgreSQL.
  • -P – Habilitar la configuración de la solicitud de contraseña para el nuevo usuario.

Para verificar el nuevo rol de PostgreSQL, puedes entrar en el shell de PostgreSQL con el siguiente comando.

sudo -u alice psql -U alice -h 127.0.0.1 -d postgres

Introduce la contraseña del rol PostgreSQL alice.

Una vez conectado al shell PostgreSQL, ejecuta la siguiente consulta para comprobar el estado de la conexión.

\conninfo

Otra consulta que también puedes intentar comprobar es la lista de usuarios disponibles en el servidor PostgreSQL.

\du

En la siguiente captura de pantalla puedes ver que te has conectado con éxito al servidor PostgreSQL como el usuario ‘alice’. Y también puedes ver que el usuario alice tiene dos privilegios, Crear un rol y Crear DB.

configuración de roles postgresql

Crear un proyecto con Rails

Ahora es el momento de crear e iniciar un nuevo proyecto con Ruby on Rails. En este ejemplo, crearás un nuevo proyecto Ruby on Rails llamado myapp con PostgreSQL como base de datos por defecto.

Para crear un nuevo proyecto Rails, puedes ejecutar el siguiente comando rails. Este comando generará el nuevo proyecto Rails fresco dentro del directorio myapp. La opción -d psotgresql sirve para especificar la base de datos que quieres utilizar, que es PostgreSQL.

rails new myapp -d postgresql

A continuación puedes ver el proceso de generación del proyecto Rails.

rails crear proyecto

Ahora ve al directorio myapp y edita la configuración de la base de datos config/database.yml utilizando el editor nano.

cd myapp/
nano config/database.yml

Descomenta y cambia las credenciales de la base de datos con tus datos de PostgreSQL. En el siguiente ejemplo, utilizaremos el rol de PostgreSQL llamado‘alice‘ con la contraseña‘mypassword‘. Los privilegios que necesitarás aquí son Crear BD y Crear rol.

username: alice
password: mypassword
host: localhost
port 5432

Guarda y cierra el archivo cuando hayas terminado.

A continuación, migra la base de datos de tu proyecto Rails utilizando el siguiente comando. Esto creará y generará la base de datos PostgreSQL para tu aplicación. Y además, asegúrate de que no te aparece ningún error como el de autentificación en el PostgreSQL. Si obtienes un error sobre la autenticación, comprueba de nuevo los detalles de tu usuario PostgreSQL.

rake db:create

migración de la base de datos de rails

Por último, ejecuta el siguiente comando rails para ejecutar tu nuevo proyecto Ruby on Rails. La opción -b 192.168.10.15 aquí es para especificar la dirección bind que ejecutará tu proyecto. Asegúrate de cambiar la dirección IP con la dirección IP de tu máquina Ubuntu.

rails server -b 192.168.10.15

En la siguiente captura de pantalla, puedes ver que la aplicación Rails se ejecuta en la dirección IP 192.168.10.15 en el modo de desarrollo con el puerto TCP 3000 por defecto.

proyecto running rails

Ahora abre tu navegador web y visita la dirección IP de tu máquina Ubuntu con el puerto 3000 (por ejemplo aquí http://192.168.10.15:3000). Y verás la página index.html por defecto del proyecto Ruby on Rails.

índice por defecto de rails

Conclusión

¡Enhorabuena! Ya has aprendido a instalar y configurar Ruby on Rails en Ubuntu 22.04. También has aprendido a configurar Rbenv para el desarrollo de Rails y también has aprendido a instalar una versión específica de Ruby utilizando Rbenv. Otras cosas importantes que también has aprendido aquí son a configurar el servidor PostgreSQL para tu proyecto Rails, lo que incluye la instalación de la biblioteca PostgreSQL y la configuración del rol PostgreSQL para tu proyecto Rails.

También te podría gustar...