Ir al contenido principal

Guía Maestra: Configuración de Ruby y Gestión de Proyectos

Esta guía detalla el proceso desde la preparación del sistema hasta la gestión avanzada de gemas (librerías) para tus proyectos de Sinatra.

Resumen de Arquitectura: Estamos usando rbenv para el motor de Ruby y Bundler para las librerías.

1. Preparación del Sistema (Ubuntu/Debian)

Instalamos las dependencias necesarias para compilar Ruby desde el código fuente:

sudo apt update && sudo apt install -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev git curl

2. Instalación de rbenv

Configuramos el gestor de versiones para manejar múltiples entornos de Ruby:

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

# Configurar variables de entorno
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

3. Instalación de Ruby 3.2.3

Instalamos la versión específica y el gestor de gemas:

rbenv install 3.2.3
rbenv global 3.2.3
gem install bundler
Tip de rbenv: Usa rbenv local 3.2.3 dentro de la carpeta de tu proyecto para crear el archivo .ruby-version.

4. Gestión de Gemas: ¿Global o Vendor?

Existen dos filosofías para manejar las librerías en Ruby:

A. Modo Global (Compartido)

Las gemas se guardan en la carpeta central de rbenv. Es el comportamiento por defecto.

Uso: Ideal para scripts rápidos o ahorrar espacio en disco.

B. Modo Vendor (Aislamiento Estilo venv)

Las gemas se guardan dentro de la carpeta del proyecto. Es lo que usamos en Nutrigesica.

bundle config set --local path 'vendor/bundle'
bundle install
Importante: Al usar este modo, siempre ejecuta tus comandos con bundle exec (ej: bundle exec ruby app.rb).

Estructura Final del Proyecto

Así es como se ve tu proyecto con el aislamiento activado:

nutrigesica/
├── .bundle/# Configuración local de Bundler
├── .ruby-version# Indica a rbenv que use Ruby 3.2.3
├── Gemfile# Lista de librerías (Sinatra, PG, etc.)
├── app.rb# Tu código principal
└── vendor/
    └── bundle/# Aquí viven tus 28MB de librerías aisladas
Recordatorio para el Servidor: En Ubuntu, solo necesitas clonar el código y ejecutar bundle install. Gracias al archivo .bundle/config, el servidor sabrá automáticamente que debe usar la carpeta vendor.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...