Este README te guiará paso a paso para instalar y configurar un entorno de desarrollo moderno en Windows usando WSL2, Ubuntu, Zsh, Homebrew, y herramientas esenciales como Git y SSH.
- Requisitos Previos
- Instalación Automática
- Instalación Manual
- Configurar Git y SSH
- Agregar tu llave publica a Github para autenticar el usuario ssh (Authentication Key)
- Agregar tu llave publica a Github para firmar commits con ssh (Signing Key)
- Acciones post Instalación
- Contribuciones
Antes de comenzar, asegúrate de contar con lo siguiente:
- Windows 10 versión 2004 (build 19041) o superior, o Windows 11
- Virtualización habilitada en BIOS/UEFI
- Acceso a Internet
- Permisos de administrador en PowerShell o CMD
¡La forma más fácil! Prueba el proceso automatizado y deja que el script haga todo el trabajo por ti. El script de instalación automática es la forma más rápida y sencilla de configurar tu entorno de desarrollo. Este script se encarga de todo el trabajo pesado, pero recuerda que debes instalar la fuente mencionada a continuación antes de ejecutarlo. El script está diseñado para Linux y sistemas WSL.
curl -O https://raw.githubusercontent.com/KevinRivera1/assets/refs/heads/main/setup_wsl_dev_env.sh
sudo chmod +x setup_wsl_dev_env.sh
bash ./setup_wsl_dev_env.sh
- Abre PowerShell o CMD como administrador.
- Ejecuta:
wsl --install # Instala WSL y la última distribución por defecto wsl --set-default-version 2 # Asegura que use la versión 2
- Reinicia el equipo.
Note
💡 Si ya tenías WSL, basta con verificar la versión y reiniciar.
-
Listar distribuciones disponibles:
wsl --list --online
-
Instalar Ubuntu:
wsl --install -d Ubuntu
-
Al finalizar, abre Windows Terminal, selecciona Ubuntu y crea tu usuario (username) y contraseña.
-
Actualizar paquetes:
sudo apt update && sudo apt upgrade -y
-
Agregar repositorio de Git:
sudo add-apt-repository ppa:git-core/ppa sudo apt update && sudo apt upgrade -y
Tip
🔒 Tip de seguridad: Utiliza contraseñas fuertes y, de ser posible, gestiona tu SSH con passphrase.
Las Nerd Fonts incluyen iconos para mejorar la apariencia de tu terminal.
- Descarga Mononoki Nerd Font o similar.
- Instálala en Windows (clic derecho ▶ Installer).
- En Windows Terminal, abre las Configuraciones, busca el perfil Ubuntu y selecciona la fuente
Mononoki NF
o la que hayas instalado.
Zsh es un shell potente y personalizable; Oh My Zsh facilita su gestión.
-
Instala Zsh:
sudo apt install zsh -y
-
Cambia tu shell por defecto:
chsh -s $(which zsh)
-
Cierra y abre de nuevo la terminal
-
Instala Oh My Zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-
Instalar plugins recomendados:
# Instala el plugin zsh-autosuggestions: git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
# Instala el plugin zsh-syntax-highlighting: git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
# Instala el plugin fast-syntax-highlighting: git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
# Instala el plugin zsh-autocomplete: git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git $ZSH_CUSTOM/plugins/zsh-autocomplete
-
Edita
nano ~/.zshrc
y añade enplugins=(...)
:plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete)
-
Recarga configuración:
source ~/.zshrc
Homebrew facilita la instalación de herramientas adicionales.
-
Instalar Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Presiona
ENTER
para continuar la instalación. - El script descargará e instalará Homebrew en tu sistema.
- Presiona
-
Agregar Homebrew al
PATH
de WSL:
Note
Presta atención al mensaje que aparece al final de la instalación, específicamente en la sección -> Next steps:
. Allí encontrarás comandos importantes que deberás ejecutar.
- Ejecutar el primer comando
- Ahora ejecuta el segundo comando:
- Instalar herramientas adicionales
sudo apt-get install build-essential
- Agregar Homebrew a
ZSH
# Agregar Homebrew al PATH en ~/.zshrc
$ echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
# Recargar ZSH para aplicar los cambios
$ source ~/.zshrc
- Instalar herramientas clave:
- Starship (prompt):
brew install starship echo 'eval "$(starship init zsh)"' >> ~/.zshrc
- lazygit (interfaz Git TUI):
brew install lazygit
- fnm (Node.js Manager) + Node LTS y Bun:
brew install fnm echo 'eval "$(fnm env --use-on-cd --shell zsh)"' >> ~/.zshrc fnm install --lts fnm install bun # Alternativa ejecuta: brew install oven-sh/bun/bun
- zoxide (navegación rápida):
brew install zoxide echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
- fzf (fuzzy finder de archivos):
brew install fzf echo 'eval "$(fzf --zsh)"' >> ~/.zshrc
- Starship (prompt):
- Personalización final (añade o verifica al final de
~/.zshrc
) que los paths se hayan agregado correctamente:# Homebrew BREW_BIN="/home/linuxbrew/.linuxbrew/bin" eval "$($BREW_BIN/brew shellenv)" # fnm (Node Version Manager) eval "$(fnm env --use-on-cd --shell zsh)" # starship eval "$(starship init zsh)" # fzf eval "$(fzf --zsh)" # zoxide eval "$(zoxide init zsh)"
- Recargar y verificar versiones:
source ~/.zshrc zsh --version && git --version && brew --version && node --version
¡Personaliza tu prompt de terminal como un profesional! 🎨
-
Configura tu
starship
de forma fácil : Puedes copiar mi configuración personalizada desde el archivostarship.toml
y adaptarla a tus gustos. Si necesitas ayuda para ajustarla, te recomiendo que consultes laDocumentación oficial de starship
, que te guiará paso a paso para personalizar tu Prompt de terminal de la mejor manera. -
Abre el archivo de configuración
starship.toml
. Si ya tienes este archivo, solo necesitas pegar la configuración copiada dentro de él. El archivo se encuentra en la siguiente ruta:
~/.config/starship.toml
Note
Si no tienes el archivo starship.toml
creado, puedes crearlo fácilmente con uno de los siguientes comandos según el editor que prefieras:
nano ~/.config/starship.toml
code ~/.config/starship.toml
vim ~/.config/starship.toml
-
Pega la configuración copiada en el archivo, guarda los cambios y cierra el editor.
-
Reinicia tu terminal para aplicar los cambios. Puedes hacer esto simplemente cerrando y abriendo de nuevo la terminal, o ejecutando el siguiente comando:
source ~/.zshrc
- Permisos denegados: añade
sudo
o revisa que tu usuario esté en el gruposudo
. - Comandos no encontrados: asegúrate de que el PATH esté actualizado (
echo $PATH
). - WSL no arranca: revisa en PowerShell
wsl --status
.
Recuerda configurar tus lllaves ssh para trabajar con git y github
- Generar par
ed25519
(cambiapersonal
por tu nombre):ssh-keygen -t ed25519 -C "tu_email@ejemplo.com" -f ~/.ssh/personal
-
Al ejecutar el anterior comando se debio generar dos llaves
ssh
una privada y otra pública:* llave privada sin extensión `personal` * llave publica con extension `personal.pub`
-
Iniciar
ssh-agent
:eval "$(ssh-agent -s)"
-
Agrega tu llave SSH privada al ssh-agent:
ssh-add ~/.ssh/nombre_clave #Ejemplo:ssh-add ~/.ssh/personal
-
Configurar
~/.ssh/config
:nano ~/.ssh/config code ~/.ssh/config vim ~/.ssh/config
-
Agrega esta configuración:
# Configuración para git personal (Personal) Host gh-personaldev #Puedes modificarlo ejemplo: gh-gitpersonal HostName github.com User git IdentityFile ~/.ssh/personal #ruta llave privada
-
Crear archivo de allowed_signers (para firmar commits):
# Crea el archivo git en esa ruta mkdir -p ~/.config/git
# Abre con nano o vim o vscode lo siguiente nano ~/.config/git/allowed_signers vim ~/.config/git/allowed_signers code ~/.config/git/allowed_signers
Important
Ahora te recomiendo abrir otra terminal y vas a ver tu llave publica esto es obligatorio:
Copiar y pegar tu llave pública en allowed_signers
:
# consola dos
cat ~/.ssh/personal.pub
Una vez abierto En el editor de allowed_signers
, pega la línea con formato exacto que te proporciono:
Nota: debe ser en ese orden verifica modificalo correctamente
# primero va tu email
# segundo la codificacion ssh-ed25519
# tercero la cadena de caracteres
# Nota: No debe tener espacio al inicio ni al final
tu_email@ejemplo.com ssh-ed25519 AAAA...tu_clave...
Guarda y cierra el archivo.
-
Ejecuta todos los comandos con tu informacion correcta:
# Identidad $ git config --global user.name "tu username de github exacto" $ git config --global user.email "your_email@example.com" # Firmas GPG/SSH $ git config --global user.signingkey ~/.ssh/personal.pub $ git config --global gpg.format ssh $ git config --global commit.gpgsign true $ git config --global tag.gpgsign true $ git config --global gpg.ssh.allowedsignersfile ~/.config/git/allowed_signers
-
Ingresa a tu cuenta de Github
-
En GitHub, ve a Settings → SSH y GPG keys.
-
Da click en
New SSH Key
-
Ingresa un tituo o nombre de tu llave SSH
- Title:
PC-Personal
- Title:
-
Key Type ->
Authentication Key
-
Key: pega el contenido de
~/.ssh/personal.pub
-
Verifica que no haya saltos de línea y elimina los espacios iniciales y finales.
-
Por ultimo da click en crear o agregar SSH Key
-
Ingresa a tu cuenta de Github
-
En GitHub, ve a Settings → SSH y GPG keys.
-
Da click en
New SSH Key
-
Ingresa un tituo o nombre de tu llave SSH
- Title:
Signer-Personal
- Title:
-
Key Type ->
Signing Key
-
Key: pega el contenido de
~/.ssh/personal.pub
-
Verifica que no haya saltos de línea y elimina los espacios iniciales y finales.
-
Por ultimo da click en crear o agregar SSH Key
Note
Es imprescindible completar ambos procesos para añadir tu llave pública en GitHub y así evitar cualquier inconveniente.
sudo apt autoremove -y # Elimina paquetes que ya no son necesarios
sudo apt autoclean -y # Elimina archivos de paquetes obsoletos
sudo apt clean -y # Borra la caché de paquetes descargados
brew cleanup -n # Muestra cuánto espacio se puede liberar
brew cleanup # Elimina versiones antiguas y archivos innecesarios
brew cleanup -s # Limpieza profunda, incluyendo caché descargada
brew autoremove # Elimina dependencias que ya no se usan
¡Listo! Con esta guía tienes un entorno completo, personalizable y productivo en Windows con WSL2. ¡A programar! 🎉
Si deseas contribuir a mejorar esta guía, por favor crea un fork
de este repositorio y envía un Pull Request
con tus cambios. Si encuentras algún error, abre un issue
para que pueda solucionarlo lo más rápido posible.