We were getting an enconding exception when running `rake db:create`. This post from stackoverlow seems to fix it https://stackoverflow.com/questions/13115692/encoding-utf8-does-not-match-locale-en-us-the-chosen-lc-ctype-setting-requires
136 lines
3.2 KiB
Markdown
136 lines
3.2 KiB
Markdown
## Configuración para los entornos de desarrollo y pruebas (Ubuntu 18.04)
|
|
|
|
## Actualización de sistema
|
|
|
|
Ejecuta una actualización general de las librerías de sistema:
|
|
|
|
```bash
|
|
sudo apt update
|
|
```
|
|
|
|
## Git
|
|
|
|
Git es mantenido oficialmente en Ubuntu:
|
|
|
|
```bash
|
|
sudo apt install git
|
|
```
|
|
|
|
## Ruby
|
|
|
|
Las versiones de Ruby versions empaquetadas en repositorios oficiales no son aptas para trabajar con CONSUL, así que debemos instalarlo manualmente.
|
|
|
|
En primer lugar, necesitamos los siguiente paquetes para poder instalar Ruby:
|
|
|
|
```bash
|
|
sudo apt install libssl1.0-dev autoconf bison build-essential libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
|
|
```
|
|
|
|
Nótese que estamos instalando el paquete `libssl1.0-dev` en lugar de `libssl-dev`. Esto es debido a que Ruby 2.3.2 (versión que CONSUL 0.19 utiliza) no es compatible con OpenSSL 1.1.
|
|
|
|
El siguiente paso es instalar un gestor de versiones de Ruby, como rbenv:
|
|
|
|
```bash
|
|
wget -q https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer -O- | bash
|
|
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
|
|
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
|
|
source ~/.bashrc
|
|
```
|
|
|
|
Por último, para instalar Ruby 2.3.2 (proceso que llevará unos minutos):
|
|
|
|
```bash
|
|
rbenv install 2.3.2
|
|
```
|
|
|
|
## Bundler
|
|
|
|
Comprueba que estemos usando la versión de Ruby que acabamos de instalar:
|
|
|
|
```bash
|
|
rbenv global 2.3.2
|
|
ruby -v
|
|
=> ruby 2.3.2p217
|
|
```
|
|
|
|
E instala Bundle con:
|
|
|
|
```bash
|
|
gem install bundler
|
|
```
|
|
|
|
## Node.js
|
|
|
|
Para compilar los archivos estáticos (JS, CSS, imágenes, etc.), es necesario un _runtime_ de JavaScript. Node.js es la opción recomendada.
|
|
|
|
Ejecuta en tu terminal:
|
|
|
|
```bash
|
|
sudo apt install nodejs
|
|
```
|
|
|
|
## PostgreSQL
|
|
|
|
Instala postgresql y sus dependencias de desarrollo con:
|
|
|
|
```bash
|
|
sudo apt install postgresql libpq-dev
|
|
```
|
|
|
|
Para el correcto funcionamiento de CONSUL, necesitas confgurar un usuario para tu base de datos. Como ejemplo, crearemos un usuario llamado "consul":
|
|
|
|
```bash
|
|
sudo -u postgres createuser consul --createdb --superuser --pwprompt
|
|
```
|
|
|
|
Para asegurarse que se utiliza la codificación con UTF-8, crea un archivo:
|
|
|
|
```
|
|
sudo nano /etc/profile.d/lang.sh
|
|
```
|
|
|
|
Añade las siguientes líneas:
|
|
|
|
```
|
|
export LANGUAGE="en_US.UTF-8"
|
|
export LANG="en_US.UTF-8"
|
|
export LC_ALL="en_US.UTF-8"
|
|
```
|
|
|
|
Reconfigura Postgres para utilizar la codificación UTF-8:
|
|
|
|
`````
|
|
sudo su - postgres
|
|
psql
|
|
|
|
update pg_database set datistemplate=false where datname='template1';
|
|
drop database Template1;
|
|
create database template1 with owner=postgres encoding='UTF-8'
|
|
lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0;
|
|
update pg_database set datistemplate=true where datname='template1';
|
|
|
|
\q
|
|
exit
|
|
`````
|
|
|
|
## Imagemagick
|
|
|
|
Instala Imagemagick:
|
|
|
|
```bash
|
|
sudo apt install imagemagick
|
|
```
|
|
|
|
## ChromeDriver
|
|
|
|
Para realizar pruebas de integración, usamos Selenium junto a Headless Chrome.
|
|
|
|
Para poder utilizarlo, instala el paquete chromium-chromedrive y asegúrate de que se encuentre enlazado en algún directorio que esté en la variable de entorno PATH:
|
|
|
|
```bash
|
|
sudo apt install chromium-chromedriver
|
|
sudo ln -s /usr/lib/chromium-browser/chromedriver /usr/local/bin/
|
|
```
|
|
|
|
¡Ya estás listo para [instalar CONSUL](local_installation.md)!
|