¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Producción (dev)
Definición práctica de los requisitos de Producción para un servidor Helpcom. Este documento está orientado más que nada a desarrollar en plataformas Linux y detalla aquellos aprovisionamientos de software soportados oficialmente por el Backend de Helpcom (lmachuca). Ver también Obtener Linux para ver las distribuciones de Linux soportadas.
Servidores BDD
Para plataformas de base de datos, las versiones de Producción (oficialmente soportadas) de motores de bases de datos en Debian son las siguientes:
Release | MySQL | MariaDB | PostgreSQL | SQLite | MongoDB | NoDB |
---|---|---|---|---|---|---|
Debian 7 (EOL 2016) | 5.5 | – | 9.4 | 2.8 | – | |
Debian 8 (EOL 2018) | 5.5 | – | 9.6 | 3.14 | 2.4 | |
Debian 9 (Stable 2018-2019) | – | 10.1 | 9.6 | 3.16 | 3.4 | |
Debian 10 (Stable 2020-2021) | – | 10.2 | 10+/193 | 3.24 | 3.4 | |
Debian Experimental | 5.7 | 10.3 | 10+/193 | 3.24 | 3.4 | |
Ubuntu 14 | 5.5 | – | 9.3 | 3.8 | 2.4 | |
Ubuntu 16 | 5.7 | 10.1 | 9.5 | 3.11 | 2.6 | |
Ubuntu 18 (LTS) | 5.7 | 10.2 | 10+/190 | 3.22 | 3.6 |
(Es posible instalar otras versiones desde repositorios externos, siempre y cuando quedemos exento del mantenimiento al no ser oficiales. – lmachuca )
MySQL < 5.5 no está soportado en ninguna rama soportada y de momento sólo es posible su instalación por medio de un debootstrap.
Para productos que usan motor de Crux, entre otros, está en Helpcom solamente probado hasta MySQL Server 5.5.
Para Draco, las versiones de Debian y Ubuntu en Producción ya usan la API de SQLite más actualizada (>= 3.4).
Para servidores cliente de F.E., el requisito es más relajado ya que se han probado correctamente con MySQL 5.7.
Para el proyecto de Orión, el soporte de PostgreSQL soportado es 10.x, con planes de mover a 11.x.
Este requisito implica que los servidores Debian para Linux Crux deben ser los siguientes: Debian 7.x; Debian 8.x; Debian 9.x sin MariaDB y con repositorios de archivo instalados (MySQL-APT 5.5); Ubuntu 14; Ubuntu 16 con repositorios de archivo instalados (MySQL-APT 5.5).
- Crux
- Serviteca
- Alerce (Trébol)
Servidores Web
El servidor web por defecto para Debian es Apache. Alternativas son NGinx y Lighttpd. Los servidores centrales de Helpcom corren NGinx excepto donde se note lo contrario.
Programación
Esta sección describe la disponibilidad de los lenguajes y motores oficialmente soportados por el Backend de Helpcom.
PHP
PHP < 7.0 se considera EOL y no tiene soporte oficial; PHP 5.6 tiene soporte comunitario hasta Septiembre de 2019 pero se considera también descontinuado. Sólo se ofrece soporte en hosting que ya tiene PHP 5.6 operativo (por ejemplo DreamHost).
Para plataformas web basadas en PHP, las versiones de Producción de PHP en Debian son las siguientes:
- Debian 8: PHP 5.6.36
- Debian 9 (Stable): PHP 7.0.49
- Debian 10: PHP 7.2.9
Debian Unstable / Experimental: PHP 7.3.0
- Ubuntu 14: PHP 5.5.9 (nota: desahuciado)
- Ubuntu 16: PHP 7.0.30.
- Ubuntu 18 (LTS): PHP 7.2.60.
Se espera que PHP 7.1 esté disponible para Debian 9 (Stable) a inicios de 2019.
Se espera que PHP 7.2 esté disponible para Debian 10 (Testing) a inicios de 2019.Actualizado a 7.2.9 en Noviembre de 2018.
El gestor de paquetes soportado por Debian es composer
desde Debian 9 en adelante. Debian 9 (Stable) soporta Composer 1.2; Debian 10 soporta Composer 1.8. Nota: por razones de seguridad, instalar Composer como global o con el usuario
root
por su página web oficial no será soportado por el Backend de Helpcom; sólo se soporta el instalador usado de manera local por el usuario del proyecto como se describe en https://getcomposer.org/doc/00-intro.md#locally .
Python
Python 2 se encuentra fuera de su periodo de soporte y se mantiene sólo por proyectos comunitarios. A menos que sea estrictamente necesario por toma de requerimientos, los desarrollos en Python debieran empezar en Python ≥ 3.4.
Para plataformas basadas en Python, las versiones de Producción de Python en Debian son 2.7 y 3.4 (Debian 7, Debian 8) a 3.6 (Debian 8, Debian 9).
Los nombres de paquete a instalar en Debian son python-2.7-dev
y python-3.4-dev
. Ver instalación y notas.
Los paquetes locales de Python se mantienen con el gestor de paquetes pip
, y los paquetes se instalan como el usuario del proyecto vía el comando pip install --user
(o pip3 install --user
para Python 3). Nota: Por razones de seguridad el Backend de Helpcom no dará soporte a paquetes instalados de manera global o con
pip
desde root
. Ver notas.
El IDE recomendado en Debian para trabajar con Python es DrPython.
Java
El motor de Java por defecto para plataformas Linux es OpenJDK 9 / Icedtea 1.9, en general compatible con el spec de Java 9. Los motores OpenJDK 8 y OpenJDK 10 también están disponibles dependiendo de la versión de Linux.
Debido a prohibiciones en la licencia, Oracle Java no está disponible dentro de la paquetería para Debian o Ubuntu excepto por un repositorio externo. Las versiones empaquetadas son usualmente
oracle-jdk-9u20
en adelante.
Los siguientes son los JDK disponibles para Producción en las versiones de Debian / Ubuntu:
- Debian 7: OpenJDK 7u171 (descontinuado).
- Debian 8: OpenJDK 8u181.
- Debian 9 (Stable): OpenJDK 8u181, 9u181.
- Debian 10 / Experimental: OpenJDK 8u181, 10u12.
- Ubuntu 16: OpenJDK 8u162, 9u114.
- Ubuntu 18 (LTS): OpenJDK 8u181, OpenJDK11u8.
El nombre de paquete a instalar en Debian es openjdk-9-jdk
en adelante. Ver notas de instalación.
El entorno de desarrollo recomendado para trabajar en Debian es Netbeans. Otros entornos soportados en Debian son Eclipse y Codelite.
Lua
Lua es un lenguaje de programación orientado a tablas. La versión soportada en Debian Stable es 5.1 y en Debian Testing de 5.2 en adelante.
El nombre de paquete a instalar en Debian es lua5.1
en adelante.
C/C++
Para desarrollar en C/C++ en Debian existen dos ramas de desarrollo de librerías principales: libstdc
, que usa el toolkit de GCC, y libc++
que usa el toolkit de Clang. Cuál toolkit se va a usar depende del proyecto. El compilador por defecto en Debian Stable es GCC 6.x.
El nombre de paquete a instalar en Debian es gcc
para GCC, y clang
+ libc++
para Clang.