Instalación de Odoo 15 Community sobre WSL Debian 13 Trixie
Requerimientos para el proceso de instalación de Python 3.9.25.
1. Dependencias necesarias
Descargar el código fuente desde la página oficial de Python. La versión de código fuente de Python requerida es la versión 3.9.25.
Posteriormente para la compilación del código fuente de Python, se requieren las siguientes librerías:
| Paquete | Módulo Python que habilita | Porque lo necesitas |
|---|---|---|
| build-essential | — | Trae gcc, make, libc6-dev. Sin esto no compila nada. |
| zlib1g-dev | zlib, zipfile, gzip | pip lo necesita para instalar wheels (que son .zip). Sin esto, pip no funciona bien. |
| libssl-dev | ssl, hashlib | Habilita HTTPS (pip, requests, urllib) y algoritmos de hash. Crítico, sin esto no puedes usar pip contra PyPI. |
| libbz2-dev | bz2 | Compresión bzip2, usado por algunos formatos de archivo y por tarfile. |
| libreadline-dev | readline | Historial y edición de línea en el REPL interactivo (flechas, Ctrl+R, etc). |
| libsqlite3-dev | sqlite3 | Base de datos embebida, usada por Django (para tests), y muchas librerías. |
| libncursesw5-dev | curses | Interfaces de texto (TUI). La versión “w” es para soporte wide-char (UTF-8). |
| libgdbm-dev / libgdbm-compat-dev | dbm | Almacenamiento clave-valor tipo Berkeley DB, usado internamente por algunas librerías estándar. |
| liblzma-dev | lzma | Compresión xz, usado por tarfile para leer .tar.xz. |
| uuid-dev | uuid | Generación de UUIDs a nivel de sistema (más rápido que el fallback puro Python). |
| libffi-dev | ctypes | Foreign Function Interface — necesario para llamar librerías C dinámicamente. Muchos paquetes de PyPI (cryptography, etc.) dependen indirectamente de esto. |
| xz-utils | — | Para poder descomprimir el .tar.xz que descargas de python.org. |
| wget | — | Para descargar el tarball. |
| libpq-dev | psycopg2 | Trae libpq-fe.h. Es la librería cliente de PostgreSQL; psycopg2 la usa para hablar con el servidor. |
| libldap2-dev | python-ldap | Trae ldap.h y lber.h. Es la librería cliente de OpenLDAP para consultas/autenticación contra un directorio LDAP. |
| libsasl2-dev | python-ldap | Dependencia de OpenLDAP para negociar mecanismos de autenticación (Kerberos, DIGEST-MD5, etc). |
| gcc | Cualquier extensión en C | El compilador que realmente construye las extensiones (ya viene incluido en build-essential, se lista aparte por claridad). |
| python3-dev | Cualquier extensión en C | Trae Python.h. Sin esto ningún paquete puede compilar contra la API interna de Python. |
Comandos a ejecutar en la terminal de Linux Debian:
# Ejecutar en la terminal de linux Bash.
sudo apt update
sudo apt install -y \
build-essential \
zlib1g-dev \
libssl-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libncursesw5-dev \
libgdbm-dev \
libgdbm-compat-dev \
liblzma-dev \
uuid-dev \
libffi-dev \
wget \
xz-utils \
libpq-dev \
libldap2-dev \
libsasl2-dev \
python3-dev \
gcc
2. Descargar y extraer el código fuente
Una vez instalados los paquetes en Linux Debian 13 Trixie, se debe descargar el código fuente de Python versión 3.9.25.
# Descargar el código fuente.
$ cd ~
$ mkdir src
$ cd ~/src # Ir a la carpeta src
$ wget https://www.python.org/ftp/python/3.9.25/Python-3.9.25.tgz # Descarga del código fuente de Python.
$ tar -xvzf Python-3.9.25.tgz # Extracción del código fuente
$ cd Python-3.9.25
3. Configurar el build
$ ./configure --enable-optimizations --with-ensurepip=install
- –enable-optimizations: activa PGO (Profile Guided Optimization). El binario final es más rápido, pero la compilación tarda considerablemente más (corre los tests como parte del build).
- –with-ensurepip=install: garantiza que pip quede instalado junto con el intérprete.
Si quieres un build más rápido para desarrollo (sin PGO):
$ ./configure --with-ensurepip=install
4. Compilar e instalar
$ make -j$(nproc)
$ sudo make altinstall
Importante: usa altinstall, no install. Esto evita que se sobrescriba el /usr/bin/python3 del sistema (Debian depende de una versión específica de Python3 para herramientas del propio sistema). altinstall te deja el binario como python3.9 sin tocar el python3 por defecto.
5. Verificar
$ python3.9 --version
$ python3.9 -m pip --version
Instalación de Odoo 15 Community.
1. Clonar el código fuente de Odoo directamente de GitHub:
$ mkdir ~/work15
$ cd ~/work15
$ git clone https://github.com/odoo/odoo.git -b 15.0 --depth=1 # Código fuente.
2. Crear un entorno virtual de Python
$ python3.9 -m venv ~/work15/env15
3. Activar el entorno virtual de Python
$ source ~/work15/env15/bin/activate
Para probar el entorno virtual activado, ejecute:
(env15) $ which python
/home/usuario/work15/env15/bin/python
Para desactivar el entorno virtual, se ejecuta:
$ deactivate
$ which python3.9
/usr/bin/python3.9
4. Con el entorno virtual activado, se procede a instalar las dependencias de Python.
$ source ~/work15/env15/bin/activate
(env15) $ pip install -U pip # Actualizar pip
(env15) $ pip install -r ~/work15/odoo/requirements.txt
5. Instalar Odoo 15 Community
(env15) $ pip install -e ~/work15/odoo
6. Instalación de la base de datos PostgreSQL.
$ sudo apt update
$ sudo apt install postgresql # Installs PostgreSQL
$ sudo su -c "createuser -s $USER" postgres # Creates db superuser
7. Crear e inicializar una base de datos desde la línea de comandos.
Asegurarse de tener el entorno virtual de Python activado.
$ source ~/work15/env15/bin/activate
(env15) $ odoo -d 15-demo --stop-after-init # Inicializa la base de datos
Sin la opción –stop-after-init, el servicio de Odoo se mantendrá en ejecución, una vez que la base de datos esté lista.
8. Ejecutando Odoo
Asegurarse de tener el entorno virtual de Python activado.
$ source ~/work15/env15/bin/activate
Con el entorno virtual activado, ejecutar Odoo para iniciar una instancia.
(env15) $ odoo --version
Odoo Server 15.0
De gual manera, conviene saber que podemos llamar de forma directa el ejecutable correspondiente.
(env15) $ ~/work15/odoo/odoo-bin --version
Podemos llamar Odoo desde una fuente específica, usando un ejecutable específico de Python, sin depender de la activación del entorno virtual.
$ ~/work15/env15/bin/python ~/work15/odoo/odoo-bin --version
Si ejecutas Odoo sin la opción –version, se mantendrá en ejecución, esperando llamadas de los clientes.
El puerto de escucha por defecto de Odoo es el 8069. Para alcanzar el servicio desde un navegador web, debemos usar la URL http://localhost:8069.
Para detener el servidor y retornar al prompt de la línea de comandos, presiones Ctrl + C.
9. Instalación de la biblioteca wkhtmltox, para las capacidades de imprimir reportes.
# Aún no existe versión para Debian 13 Trixie, se descarga la de bookworm.
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb -O /tmp/wkhtml.deb
$ sudo dpkg -i /tmp/wkhtml.deb
$ sudo apt-get -fy install # Repara errores de dependencia
Comentarios
Publicar un comentario