1 Otras Formas de Configurar Tu Entorno
Si no deseas configurar Rails para el desarrollo en tu máquina local, puedes usar Codespaces, el Plugin Remoto de VS Code, o rails-dev-box. Aprende más sobre estas opciones aquí.
2 Desarrollo Local
Si deseas desarrollar Ruby on Rails localmente en tu máquina, consulta los pasos a continuación.
2.1 Instalar Git
Ruby on Rails utiliza Git para el control del código fuente. La página principal de Git tiene instrucciones de instalación. Hay una variedad de recursos en línea que te ayudarán a familiarizarte con Git.
2.2 Clonar el Repositorio de Ruby on Rails
Navega a la carpeta donde deseas descargar el código fuente de Ruby on Rails (creará su propio subdirectorio rails
) y ejecuta:
$ git clone https://github.com/rails/rails.git
$ cd rails
2.3 Instalar Herramientas y Servicios Adicionales
Algunas pruebas de Rails dependen de herramientas adicionales que necesitas instalar antes de ejecutar esas pruebas específicas.
Aquí está la lista de dependencias adicionales de cada gema:
- Action Cable depende de Redis
- Active Record depende de SQLite3, MySQL y PostgreSQL
- Active Storage depende de Yarn (además Yarn depende de Node.js), ImageMagick, libvips, FFmpeg, muPDF, Poppler, y en macOS también XQuartz.
- Active Support depende de memcached y Redis
- Railties dependen de un entorno de ejecución de JavaScript, como tener Node.js instalado.
Instala todos los servicios que necesitas para probar adecuadamente la gema completa a la que realizarás cambios. Cómo instalar estos servicios para macOS, Ubuntu, Fedora/CentOS, Arch Linux y FreeBSD se detalla a continuación.
NOTA: La documentación de Redis desaconseja las instalaciones con gestores de paquetes ya que suelen estar desactualizadas. Instalar desde el código fuente y poner en marcha el servidor es sencillo y está bien documentado en la documentación de Redis.
NOTA: Las pruebas de Active Record deben pasar al menos para MySQL, PostgreSQL y SQLite3. Tu parche será rechazado si se prueba contra un solo adaptador, a menos que el cambio y las pruebas sean específicos del adaptador.
A continuación puedes encontrar instrucciones sobre cómo instalar todas las herramientas adicionales para diferentes sistemas operativos.
2.3.1 macOS
En macOS puedes usar Homebrew para instalar todas las herramientas adicionales.
Para instalar todo ejecuta:
$ brew bundle
También necesitarás iniciar cada uno de los servicios instalados. Para listar todos los servicios disponibles ejecuta:
$ brew services list
Luego puedes iniciar cada uno de los servicios uno por uno de esta manera:
$ brew services start mysql
Reemplaza mysql
con el nombre del servicio que deseas iniciar.
2.3.2 Ubuntu
Para instalar todo ejecuta:
$ sudo apt-get update
$ sudo apt-get install sqlite3 libsqlite3-dev mysql-server libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils
# Instalar Yarn
# Usa este comando si no tienes instalado Node.js
# ref: https://github.com/nodesource/distributions#installation-instructions
$ sudo mkdir -p /etc/apt/keyrings
$ curl --fail --silent --show-error --location https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
$ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
$ sudo apt-get update
$ sudo apt-get install -y nodejs
# Una vez que hayas instalado Node.js, instala el paquete npm de yarn
$ sudo npm install --global yarn
2.3.3 Fedora o CentOS
Para instalar todo ejecuta:
$ sudo dnf install sqlite-devel sqlite-libs mysql-server mysql-devel postgresql-server postgresql-devel redis memcached ImageMagick ffmpeg mupdf libxml2-devel vips poppler-utils
# Instalar Yarn
# Usa este comando si no tienes instalado Node.js
# ref: https://github.com/nodesource/distributions#installation-instructions-1
$ sudo dnf install https://rpm.nodesource.com/pub_20/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y
$ sudo dnf install nodejs -y --setopt=nodesource-nodejs.module_hotfixes=1
# Una vez que hayas instalado Node.js, instala el paquete npm de yarn
$ sudo npm install --global yarn
2.3.4 Arch Linux
Para instalar todo ejecuta:
$ sudo pacman -S sqlite mariadb libmariadbclient mariadb-clients postgresql postgresql-libs redis memcached imagemagick ffmpeg mupdf mupdf-tools poppler yarn libxml2 libvips poppler
$ sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
$ sudo systemctl start redis mariadb memcached
NOTA: Si estás ejecutando Arch Linux, MySQL ya no es compatible, por lo que necesitarás usar MariaDB en su lugar (ver este anuncio).
2.3.5 FreeBSD
Para instalar todo ejecuta:
$ sudo pkg install sqlite3 mysql80-client mysql80-server postgresql11-client postgresql11-server memcached imagemagick6 ffmpeg mupdf yarn libxml2 vips poppler-utils
# portmaster databases/redis
O instala todo a través de ports (estos paquetes están ubicados en la
carpeta databases
).
NOTA: Si encuentras problemas durante la instalación de MySQL, por favor consulta la documentación de MySQL.
2.3.6 Debian
Para instalar todas las dependencias ejecuta:
$ sudo apt-get install sqlite3 libsqlite3-dev default-mysql-server default-libmysqlclient-dev postgresql postgresql-client postgresql-contrib libpq-dev redis-server memcached imagemagick ffmpeg mupdf mupdf-tools libxml2-dev libvips42 poppler-utils
NOTA: Si estás ejecutando Debian, MariaDB es el servidor MySQL predeterminado, así que ten en cuenta que puede haber diferencias.
2.4 Configuración de la Base de Datos
Hay un par de pasos adicionales requeridos para configurar los motores de base de datos necesarios para ejecutar pruebas de Active Record.
La autenticación de PostgreSQL funciona de manera diferente. Para configurar el entorno de desarrollo con tu cuenta de desarrollo, en Linux o BSD, solo tienes que ejecutar:
$ sudo -u postgres createuser --superuser $USER
y para macOS:
$ createuser --superuser $USER
NOTA: MySQL creará los usuarios cuando se creen las bases de datos. La tarea asume que tu usuario es root
sin contraseña.
Luego, necesitas crear las bases de datos de prueba tanto para MySQL como para PostgreSQL con:
$ cd activerecord
$ bundle exec rake db:create
También puedes crear bases de datos de prueba para cada motor de base de datos por separado:
$ cd activerecord
$ bundle exec rake db:mysql:build
$ bundle exec rake db:postgresql:build
y puedes eliminar las bases de datos usando:
$ cd activerecord
$ bundle exec rake db:drop
NOTA: Usar la tarea Rake para crear las bases de datos de prueba asegura que tengan el conjunto de caracteres y la intercalación correctos.
Si estás usando otra base de datos, verifica el archivo activerecord/test/config.yml
o activerecord/test/config.example.yml
para obtener información de conexión predeterminada. Puedes editar activerecord/test/config.yml
para proporcionar credenciales diferentes en tu máquina, pero no debes enviar ninguno de esos cambios de vuelta a Rails.
2.5 Instalar Dependencias de JavaScript
Si instalaste Yarn, necesitarás instalar las dependencias de JavaScript:
$ yarn install
2.6 Instalación de Dependencias de Gemas
Las gemas se instalan con Bundler que se incluye por defecto con Ruby.
Para instalar el Gemfile para Rails ejecuta:
$ bundle install
Si no necesitas ejecutar pruebas de Active Record, puedes ejecutar:
$ bundle install --without db
2.7 Contribuir a Rails
Después de haber configurado todo, lee cómo puedes comenzar a contribuir.
Comentarios
Se te anima a ayudar a mejorar la calidad de esta guía.
Por favor contribuye si ves algún error tipográfico o errores fácticos. Para comenzar, puedes leer nuestra sección de contribuciones a la documentación.
También puedes encontrar contenido incompleto o cosas que no están actualizadas. Por favor agrega cualquier documentación faltante para main. Asegúrate de revisar Guías Edge primero para verificar si los problemas ya están resueltos o no en la rama principal. Revisa las Guías de Ruby on Rails para estilo y convenciones.
Si por alguna razón detectas algo que corregir pero no puedes hacerlo tú mismo, por favor abre un issue.
Y por último, pero no menos importante, cualquier tipo de discusión sobre la documentación de Ruby on Rails es muy bienvenida en el Foro oficial de Ruby on Rails.