Configurar Ubuntu o WSL para desarrollo no es instalar paquetes al azar. Es diseñar tu entorno como si fuera la base de un edificio: estable, limpio y preparado para escalar.
En este artículo vas a aprender exactamente cómo preparar Ubuntu o WSL desde cero para trabajar de forma profesional, sin dependencias rotas, sin conflictos raros y sin perder horas cuando cambies de proyecto.
Llevo años trabajando en entornos Linux, tanto nativos como en WSL. He reinstalado sistemas completos por malas decisiones iniciales. Y te puedo decir algo: el problema casi nunca es Linux. Es la forma en que lo configuramos.
El problema es que la mayoría instala herramientas pensando en el proyecto actual. No en el sistema completo. Y eso termina explotando cuando agregas otra tecnología encima.
Vamos a ver:
- Cómo dejar el sistema completamente actualizado y limpio.
- Qué paquetes realmente necesitas para desarrollo profesional.
- Cómo construir una base replicable para cualquier stack.
- El checklist final que uso en cada máquina nueva.
Al final tendrás un entorno listo para backend, frontend o full stack sin fricción innecesaria.
¿Aún no tienes WSL con Ubuntu? Empieza por aquí: desde PowerShell o desde la Microsoft Store.
Tabla de contenidos
Tabla de contenidos
Base limpia y lista para trabajar
Antes de instalar cualquier herramienta moderna, el sistema debe estar sano.
1. Actualizar completamente Ubuntu
sudo apt update && sudo apt upgrade -y && sudo apt full-upgrade -y
updatesincroniza índices.upgradeactualiza paquetes existentes.full-upgraderesuelve dependencias complejas.
Esto elimina inconsistencias iniciales.
No es opcional.
2. Limpiar el sistema
sudo apt clean && sudo apt autoclean && sudo apt autoremove -y
¿Por qué importa?
Porque dependencias huérfanas generan conflictos silenciosos más adelante.
Un entorno profesional no acumula basura técnica.
3. Soporte para sistemas de archivos adicionales
Si trabajas con discos externos, clientes o equipos mixtos:
sudo apt install -y exfat-fuse hfsplus hfsutils ntfs-3g
ntfs-3g→ Windowsexfat-fuse→ memorias modernashfsplus→ discos macOS
Pequeño detalle. Gran impacto cuando lo necesitas.
4. Reconocimiento de smartphones
Si pruebas aplicaciones móviles o transfieres builds:
sudo apt install -y mtp-tools ipheth-utils ideviceinstaller ifuse
Evita el clásico: conectas el dispositivo y no pasa nada.
5. Manejo de archivos comprimidos
sudo apt install -y zip unzip unrar p7zip-full
Nunca sabes qué formato llegará en producción.
Pero esto solo funciona si entiendes el siguiente principio.
El error conceptual que rompe entornos
El error no es técnico.
Es mental.
La mayoría instala herramientas para resolver lo inmediato.
Un proyecto. Un cliente. Un curso. Un stack puntual.
Yo cometí ese error.
Instalé versiones manuales. Compilé cosas sin entender dependencias. Mezclé repositorios externos.
Funcionaba… hasta que cambiaba de proyecto.
Y entonces empezaban los problemas:
- Conflictos con OpenSSL.
- Librerías C que no compilaban.
- Extensiones que fallaban.
- Node o Ruby rompiendo por dependencias del sistema.
Un entorno de desarrollo no es un conjunto de comandos. Es una arquitectura base.
Cuando entendí eso, cambié mi enfoque.
Ya no configuro máquinas para un proyecto. Las configuro para cualquier proyecto.
Aquí es donde la mayoría falla.
Sistema profesional replicable paso a paso
Este es el bloque importante.
La base que instalo siempre:
sudo apt install -y \
git build-essential curl wget openssl libssl-dev libreadline-dev \
dirmngr zlib1g-dev libmagickwand-dev imagemagick libffi-dev \
libpq-dev cmake libwebp-dev libyaml-dev libsqlite3-dev sqlite3 \
libxml2-dev libxslt1-dev software-properties-common libcurl4-openssl-dev \
libvips-dev ffmpeg libpoppler-dev mupdf make llvm libbz2-dev tree \
libncurses-dev xz-utils tk-dev libxmlsec1-dev \
liblzma-dev python3-openssl
Ahora el por qué.
- build-essential: Compiladores y herramientas base. Sin esto, muchos paquetes fallan al instalarse.
- libssl-dev / openssl: Crítico para cualquier backend moderno. Si esto falla, medio ecosistema falla.
- libpq-dev: PostgreSQL. Si trabajas en serio con backend, lo vas a necesitar.
- libxml2-dev / libxslt1-dev: Parsing, scraping, procesamiento de datos. No siempre hoy, pero sí mañana.
- ffmpeg: Procesamiento multimedia. Incluso si no haces video, muchas librerías lo usan indirectamente.
- cmake / llvm: Compilación avanzada. Lenguajes modernos dependen de esto aunque no lo notes.
- tree: Pequeña herramienta. Gran claridad estructural.
Si vienes de guías antiguas: git-core, libncurses5-dev e imagemagick-6.q16 ya no existen en Ubuntu 24.04. Sus reemplazos actuales son git, libncurses-dev e imagemagick, que es lo que usa este bloque.
Flujo mental correcto
Piensa tu entorno así:
flowchart TD
A[Sistema limpio] --> B[Dependencias base]
B --> C[Gestores de versión]
C --> D[Stack del proyecto]
D --> E[Producto real]
Si la base es débil, todo arriba es frágil.
Y ahí es donde empiezan los errores que “nadie sabe explicar”.
Checklist final
Antes de empezar cualquier proyecto nuevo, verifica:
- Sistema completamente actualizado.
- Sin paquetes huérfanos.
build-essentialinstalado.- OpenSSL funcional.
- Soporte de bases de datos listo.
- Librerías de compilación activas.
- Compatibilidad con sistemas de archivos.
- Git funcionando correctamente.
Si todo esto está correcto, tu entorno no es improvisado.
Es profesional.
Conclusión
Con la base instalada, tu Ubuntu ya no depende de la suerte: cualquier stack que montes encima (Node, Python, Ruby, lo que venga en la serie) va a compilar sin sorpresas.
Si esto te fue útil, el artículo relacionado es el paso lógico: Cómo integrar Visual Studio Code con WSL, el editor conectado a este entorno que acabas de construir.
¿Y si trabajas en Mac? El jueves publico esta misma base para macOS, con Homebrew como núcleo. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.