Ir al contenido principal

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

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

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

Comentarios

Popular posts

Tips para la Optimización de consultas SQL para SAP HANA 2.0

Tips para la Optimización de Consultas SQL para SAP HANA 2.0 1.  Prohibido usar SELECT *. Especificar explícitamente los campo a usar. Impacto en rendimiento . Si la tabla tiene mucha columnas, la consulta se vuelve mucho más lenta y consume más memoria. Mayor carga de red . Estás enviado datos que quizá el usuario o aplicación no necesitan. Fragilidad del código . Si la estructura de la tabla cambia, el resultado del SELECT * también cambia, afectando reportes y procesos. Dificulta el trabajo del optimizador. SAP HANA no puede aplicar optimizaciones como column pruning si se pide todo. SELECT * FROM CLIENTES; -- Mala práctica SELECT CVE, NOMBRE FROM CLIENTES; -- Buena práctica 2.  Filtrar lo antes posible. Aplicar condiciones WHERE para reducir datos antes de JOINS. Menos datos en memoria. Menos pasos en el plan. Mejor uso de índices y ejecución más rápida. -- Mala práctica SELECT C.CUSTOMER_ID, C.NAME, O.ORDER_ID FROM CUSTOMERS C  ...