Uno de los desafíos más comunes en equipos distribuidos o desarrolladores con múltiples dispositivos es mantener entornos consistentes entre máquinas. Gracias a las capacidades de exportación de distribuciones, el uso de Dev Containers, gestión de configuraciones declarativas y herramientas de backup, WSL2 puede sincronizarse entre diferentes sistemas Windows de forma confiable y productiva.
Este artículo explora las mejores estrategias para mantener la coherencia de entornos WSL2 en múltiples PCs o notebooks, incluyendo ejemplos prácticos.
Estrategia 1: Exportar y restaurar distribuciones WSL2
WSL2 permite exportar una distribución completa a un archivo .tar
que puede transferirse y reinstalarse en otra máquina.
Exportar distro actual
wsl --export Ubuntu ubuntu-backup.tar
Importar en otra máquina
wsl --import UbuntuRestaurado D:\WSL\Ubuntu ubuntu-backup.tar --version 2
Esto restaura una copia exacta del entorno, incluyendo paquetes, usuarios y configuraciones personalizadas.
Estrategia 2: Usar dotfiles y scripts de inicialización
Versionar archivos de configuración personal (.bashrc
, .gitconfig
, .profile
, etc.) en un repositorio dotfiles
.
Clonar y aplicar dotfiles
git clone https://github.com/tuusuario/dotfiles ~/.dotfiles
cp ~/.dotfiles/.bashrc ~/.bashrc
source ~/.bashrc
También se pueden automatizar con herramientas como:
chezmoi
dotbot
Estrategia 3: Reproducir entornos con Dev Containers o Nix
Usar archivos devcontainer.json
para definir entornos que pueden ser abiertos en VS Code o Codespaces:
.devcontainer/
├── devcontainer.json
├── Dockerfile
También se puede usar shell.nix
o Dockerfile
si se trabaja con entornos reproducibles.
Estrategia 4: Sincronización de paquetes con scripts
Guardar listas de paquetes instalados:
Debian/Ubuntu:
dpkg --get-selections > packages.list
En la otra máquina:
sudo dpkg --set-selections < packages.list
sudo apt-get dselect-upgrade
Python:
pip freeze > requirements.txt
pip install -r requirements.txt
Estrategia 5: Usar GitHub Codespaces como entorno espejo
Subir estructura del proyecto con .devcontainer
a un repositorio permite ejecutarlo directamente en la nube con GitHub Codespaces, asegurando un entorno 100% idéntico.
Acceder desde cualquier máquina con solo iniciar sesión en GitHub.
Recomendaciones de sincronización segura
- Almacenar
.tar
exportados en nube cifrada o con contraseña - Evitar sincronizar
/mnt/c/
o rutas externas entre máquinas - No exportar claves privadas ni
.ssh
en entornos compartidos - Automatizar con scripts
setup.sh
ymake bootstrap
Conclusión
Mantener entornos WSL2 sincronizados entre varios dispositivos es completamente factible con herramientas estándar del ecosistema Linux y Windows. Ya sea a través de exportaciones manuales, entornos declarativos o integración con GitHub Codespaces, se puede lograr coherencia, productividad y portabilidad en cualquier máquina.
Ver también
- Construcción de un asistente contextual para escritorio usando IA local con acceso al sistema
- Integración de inferencia local ONNX con Windows ML en apps modernas
- Integración con servicios locales vía App Services y extensión de funcionalidades entre apps
- Implementación de Background Tasks persistentes en apps modernas
- Empaquetado de apps modernas con MSIX y configuración avanzada del manifiesto