Cómo instalar Ruby on Rails en Debian 12
Ruby on Rails o RoR es un marco de aplicaciones web gratuito y de código abierto escrito en Ruby y publicado bajo la licencia MIT. Rails es un framework web de pila completa para crear fácilmente aplicaciones de nivel empresarial. Rails incluye diferentes herramientas que permiten a los desarrolladores crear fácilmente aplicaciones tanto frontend como backend. Ruby on Rails también tiene funciones de seguridad integradas, como protección contra ataques comunes como 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 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 esta guía, te guiaremos a través de la instalación de Ruby on Rails en el servidor Debian 12. Instalarás Ruby on Rails con un servidor de base de datos PostgreSQL y el gestor de versiones de Ruby Rbenv. También crearás un andamio, la estructura básica del proyecto Rails.
Requisitos previos
Antes de empezar, confirma que tienes
- Un servidor Debian 12.
- Un usuario no root con privilegios de administrador sudo.
Instalación de dependencias
En el primer paso, instalarás algunas dependencias básicas en tu servidor Debian. Esto incluye el servidor de base de datos PostgreSQL que se utilizará como base de datos para tu proyecto Rails, el node.js y el gestor de paquetes Yarn que utilizará Rails para compilar activos estáticos.
Para empezar, actualiza y refresca tu índice de paquetes ejecutando el siguiente comando apt update.
sudo apt update
A continuación, instala las dependencias mediante el siguiente comando apt install. Esto incluye el servidor de bases de datos PostgreSQL, el controlador libpq, Node.js, Yarn, Git y algunas bibliotecas y herramientas del sistema.
sudo apt install postgresql libpq-dev nodejs yarnpkg git 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
Escribe y para confirmar y proceder con la instalación.
Una vez instaladas las dependencias, comprueba el estado del servidor PostgreSQL utilizando el siguiente comando. Esto asegurará que PostgreSQL se está ejecutando y está habilitado en tu máquina Debian.
sudo systemctl is-enabled postgresql sudo systemctl status postgresql
Si PostgreSQL está habilitado, deberías obtener la salida habilitado. Si PostgreSQL está en ejecución, deberías obtener la salida activo(en ejecución) o activo(salido).
Por último, comprueba el gestor de paquetes Node.js y Yarn ejecutando el siguiente comando.
node --version yarnpkg --version
En este ejemplo, Node.js 18 y Yarn 1.22 están instalados.
Instalar Rbenv
Tras instalar las dependencias de los paquetes, el siguiente paso es instalar Rbenv, el gestor de versiones de Ruby para sistemas operativos tipo Unix. Con Rbenv, puedes gestionar fácilmente tu entorno de aplicaciones Ruby, también puedes instalar varias versiones de Ruby en tu sistema.
Accede a tu Usuario utilizando el siguiente comando.
su - user
Descarga el código fuente de rbenv y el plugin ruby-build mediante el siguiente comando git.
git clone https://github.com/rbenv/rbenv.git ~/.rbenv git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Ahora ejecuta el siguiente comando para añadir un PATH personalizado a tu shell.
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Recarga tu configuración ~/.bashrc para aplicar los cambios. Tras ejecutar el comando, tu instalación de rbenv debería activarse.
source ~/.bashrc
Verifica rbenv ejecutando el siguiente comando rbenv. Si la instalación de rbenv se ha realizado correctamente, deberías ver los comandos/opciones de rbenv disponibles.
rbenv commands
Instalar Ruby mediante Rbenv
Con Rbenv instalado, ya puedes instalar Ruby en tu sistema. Con Rbenv, instalarás Ruby sólo en tu entorno actual, lo que no afecta a todo el sistema. Instalarás Ruby 3.2.2 en tu entorno de usuario actual.
Ejecuta el siguiente comando rbenv install para instalar Ruby 3.2.2 en tu sistema.
rbenv install 3.2.2
Durante la instalación, deberías ver esto
Una vez instalado Ruby, ejecuta el siguiente comando para establecer la versión de Ruby por defecto en 3.2.2.
rbenv global 3.2.2
Por último, verifica la versión de Ruby en tu sistema utilizando el comando siguiente.
ruby -v
Si todo va bien, deberías ver que Ruby 3.2.2 está instalado.
Instalación de Ruby on Rails
Llegados a este punto, tu sistema está configurado y listo para instalar Ruby on Rails en tu máquina Debian. En este ejemplo, instalarás Ruby on Rails 7.0, y comprobarás la lista de versiones disponibles de Rails en el sitio oficial.
Ejecuta los siguientes comandos gem para instalar el bundler y, a continuación, instala Ruby on Rails 7.0.7.2.
gem install bundler gem install rails -v 7.0.7.2
Durante la instalación, deberías ver una salida como la siguiente:
Ahora ejecuta el comando rebenv que aparece a continuación para rehacer y recargar tu entorno actual.
rbenv rehash
Por último, ejecuta el siguiente comando rails para asegurarte de que Ruby on Rails está instalado.
rails version rails -h
Si la instalación se ha realizado correctamente, deberías ver tu versión actual de Rails y la página de ayuda del comando rails.
Creación del primer proyecto Rails
En esta sección aprenderás a crear tu primer proyecto con Ruby on Rails. Utilizarás PostgreSQL como base de datos por defecto para tu proyecto Rails. Para ello deberás completar lo siguiente:
- Preparar el usuario PostgreSQL para la aplicación.
- Crear el primer proyecto Rails.
Preparar el usuario de la base de datos
En primer lugar, debes crear un nuevo usuario PostgreSQL que se utilizará para tu aplicación Rails. Este usuario debe tener privilegios para crear bases de datos y usuarios.
Vuelve a tu cuenta de usuario e inicia sesión en el servidor PostgreSQL utilizando el siguiente comando.
sudo su sudo -u postgres psql
Ahora crea un nuevo usuario bob con la contraseña p4sswordbob. A continuación, asigna al usuario bob nuevos privilegios para crear una base de datos y roles.
CREATE USER bob WITH PASSWORD 'p4sswordbob'; ALTER USER bob CREATEDB CREATEROLE;
Comprueba la lista de usuarios y privilegios en tu servidor PostgreSQL utilizando el comando siguiente.
\du
Deberías ver al usuario bob con privilegios CREATEDB y CREATEROLE.
Escribe \q para cerrar la sesión en el servidor PostgreSQL.
Por último, entra con tu usuario y ejecuta el siguiente comando psql para conectarte al servidor PostgreSQL como el nuevo usuario bob.
su - user psql -U bob -h 127.0.0.1 -d postgres
Una vez conectado al servidor PostgreSQL, ejecuta la siguiente consulta para verificar la información de tu conexión.
\conninfo
Deberías ver que te has conectado al servidor PostgreSQL como usuario bob.
Escribe \q para salir del servidor PostgreSQL.
Creación del proyecto Rails
Tras crear un usuario PostgreSQL, ya puedes empezar a crear un nuevo proyecto Rails mediante la utilidad de línea de comandos rails.
Para crear un nuevo proyecto rails, ejecuta el siguiente comando rails. En este ejemplo, crearás un nuevo proyecto testapp con la base de datos PostgreSQL por defecto.
rails new testapp -d postgresql
La salida del comando debería tener este aspecto:
Una vez creado el proyecto, también se creará el nuevo directorio ~/testapp. Entra en el directorio ~/testapp y abre la configuración de la base de datos config/database.yml con tu editor de texto preferido.
cd testapp/ nano config/database.yml
Cambia la configuración predeterminada de la base de datos para desarrollo, prueba y producción. Asegúrate de introducir tu nombre de usuario y contraseña de PostgreSQL.
development: <<: *default database: testapp_development
# The specified database role is being used to connect to postgres.
# To create additional roles in postgres see `$ createuser –help`.
# When left blank, postgres will use the default role. This is
# the same name as the operating system user running Rails.
username: bob
# The password associated with the postgres role (username).
password: p4sswordbob
# Connect on a TCP socket. Omitted by default since the client uses a
# domain socket that doesn’t need configuration. Windows does not have
# domain sockets, so uncomment these lines.
host: localhost
# The TCP port the server listens on. Defaults to 5432.
# If your server runs on a different port number, change accordingly.
port: 5432
Guarda y sal del archivo cuando hayas terminado.
Ahora ejecuta el siguiente comando rails para migrar la base de datos. Esto creará automáticamente una nueva base de datos para tu proyecto testapp.
rails db:setup rails db:migrate
A continuación deberías ver la salida durante la migración de la base de datos del proyecto testapp.
Una vez migrada la base de datos, ejecuta el siguiente comando rails para ejecutar el proyecto testapp. Esto ejecutará testapp dentro de tu dirección IP en el puerto 3000.
rails server -b 192.168.10.15
En la siguiente salida, deberías ver que testapp se está ejecutando.
Ahora inicia tu navegador web favorito y visita la dirección IP de tu servidor seguida del puerto 3000, por ejemplo http://192.168.10.15:3000/. Si la instalación se ha realizado correctamente, deberías ver la página index.html por defecto de Ruby on Rails.
Pulsa Ctrl+c para terminar tu aplicación Rails.
Andamiaje Rails para el kit de inicio
Un andamio es una forma automática de generar la estructura básica de un proyecto Rails, que incluye un controlador, un modelo y una vista.
Ejecuta el siguiente comando rails para crear el andamiaje libros con tres campos título, autor y año_publicación.
rails g scaffold books title:string author:string publication_year:integer
Ahora migra la base de datos para aplicar los cambios utilizando el siguiente comando rails.
rails db:migrate
A continuación, ejecuta tu proyecto Rails ejecutando el comando rails server que aparece a continuación.
rails server -b 192.168.10.15
Una vez que testapp se esté ejecutando, comprueba el andamiaje de libros a través de la ruta URL /libros, como http://192.168.10.15:3000/books. Si todo va bien, deberías ver el andamio generado como el siguiente:
Ahora puedes insertar nuevos datos en el andamio books como el siguiente:
Conclusión
En conclusión, has completado la instalación de Ruby on Rails con el servidor de bases de datos PostgreSQL y Rbenv en el servidor Debian 12. También has aprendido a generar andamiajes para estructuras básicas del proyecto Rails.