Artículos, Guías y Casos Prácticos

Instalación de Odoo 15 Community sobre WSL Debian 13 Trixie

Plataforma
WSL 2 (Debian 13)

Versión Odoo
15.0 Community

Versión Python
3.9.25 (Source)

Puerto Web
:8069 (HTTP)

1

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.
git Control de versiones.

Comandos a ejecutar en la terminal de Linux Debian:

bash • terminal 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 \
  git

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.

bash • terminal debian

# 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

bash • terminal debian

$ ./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):

bash • terminal debian

$ ./configure --with-ensurepip=install

4. Compilar e instalar

bash • terminal debian

$ 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

bash • terminal debian

$ python3.9 --version
$ python3.9 -m pip --version

2

Instalación de Odoo 15 Community.

1. Clonar el código fuente de Odoo directamente de GitHub:

bash • terminal debian

$ 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

bash • terminal debian

$ python3.9 -m venv ~/work15/env15

3. Activar el entorno virtual de Python

bash • terminal debian

$ source ~/work15/env15/bin/activate

Para probar el entorno virtual activado, ejecute:

bash • terminal debian

(env15) $ which python 
/home/usuario/work15/env15/bin/python

Para desactivar el entorno virtual, se ejecuta:

bash • terminal debian

$ deactivate 
$ which python3.9
/usr/bin/python3.9

4. Con el entorno virtual activado, se procede a instalar las dependencias de Python.

bash • terminal debian

$ 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

bash • terminal debian

(env15) $ pip install -e ~/work15/odoo

6. Instalación de la base de datos PostgreSQL.

bash • terminal debian

$ 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

bash • terminal debian

$ source ~/work15/env15/bin/activate

bash • terminal debian

(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

bash • terminal debian

$ source ~/work15/env15/bin/activate

Con el entorno virtual activado, ejecutar Odoo para iniciar una instancia.

bash • terminal debian

(env15) $ odoo --version 
Odoo Server 15.0

De gual manera, conviene saber que podemos llamar de forma directa el ejecutable correspondiente.

bash • terminal debian

(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.

bash • terminal debian

$ ~/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.

bash • terminal debian

# 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


🎉

¡¡¡Felicidades, hemos instalado Odoo 15 Community en WSL Debian 13 Trixie!!!


💬 ¿Necesitas ayuda con el despliegue o consultoría en Odoo?

Soporte Técnico Directo • Asesoría para PyMEs

Si requieres implementar Odoo en servidores productivos en la nube, migrar datos desde sistemas heredados, integrar facturación electrónica o capacitar a tu equipo, contáctanos directamente por WhatsApp:

Jesús

Autor y colaborador en AkeemTech Systems.

Participa en la Conversación

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *