Python de Cero a Pro - Cap.2 NixShell
Una guía detallada para la creación de entornos de desarrollo aislados y reproducibles con Nix-Shell en Fedora.
Síguenos en YouTube
Section titled “Síguenos en YouTube”Volver a Página Principal
Ver Codigo en GitLab
Módulo 2: Entornos de Desarrollo con Nix-Shell
Section titled “Módulo 2: Entornos de Desarrollo con Nix-Shell”¿Qué es Nix-Shell?
Section titled “¿Qué es Nix-Shell?”Nix-Shell es una herramienta del ecosistema Nix que te permite crear entornos de desarrollo aislados y reproducibles. Imagina que cada uno de tus proyectos de software puede tener su propia caja de herramientas, con las versiones exactas de software y librerías que necesita, sin que entren en conflicto con otros proyectos. Esto es exactamente lo que hace Nix-Shell.
Instalación y Configuración en Fedora
Section titled “Instalación y Configuración en Fedora”-
Instalar Nix en Fedora: Abre tu terminal y ejecuta el siguiente comando para instalar Nix. Este comando descarga y ejecuta un script de instalación que configura Nix en tu sistema.
Terminal window sh <(curl -L [https://nixos.org/nix/install](https://nixos.org/nix/install)) --daemonEl
--daemones crucial, ya que permite que Nix funcione en un sistema multiusuario como Fedora, ejecutándose como un servicio en segundo plano. -
Configurar tu shell: Para que tu terminal reconozca los comandos de Nix, necesitas añadirlo a tu PATH. El instalador te dará las instrucciones al final, pero generalmente se trata de añadir las siguientes líneas a tu archivo de configuración de shell (por ejemplo,
.bashrco.zshrc).Terminal window . /home/tu_usuario/.nix-profile/etc/profile.d/nix.shRecuerda reemplazar
tu_usuariocon tu nombre de usuario. Después de editar el archivo, recarga tu shell consource ~/.bashrcosource ~/.zshrc.
Crear y correr un entorno de Python con Nix-Shell
Section titled “Crear y correr un entorno de Python con Nix-Shell”-
Crear el archivo
shell.nix: En la raíz de tu proyecto, crea un archivo llamadoshell.nix. Este archivo es la “receta” que le dice a Nix qué herramientas y librerías necesitas.{ pkgs ? import <nixpkgs> {} }:pkgs.mkShell {buildInputs = [pkgs.python311pkgs.python311Packages.pippkgs.python311Packages.virtualenv];}En este ejemplo, estamos pidiendo la versión 3.11 de Python, junto con
pipyvirtualenvpara gestionar las dependencias del proyecto. -
Activar el entorno: Una vez que tengas tu archivo
shell.nix, simplemente ejecuta el siguiente comando en la terminal desde el directorio de tu proyecto:Terminal window nix-shellNix descargará e instalará todas las dependencias especificadas en el archivo
shell.nixen un entorno temporal. Una vez completado, verás que tu prompt de la terminal cambia, indicando que estás dentro del entorno Nix-Shell.Verifica que funciona: Puedes confirmar que estás usando la versión correcta de Python ejecutando:
Terminal window python --version¡Y listo! Ya tienes un entorno de desarrollo con Python 3.11 totalmente aislado y reproducible.
Referencias Complementarias
Section titled “Referencias Complementarias”- Documentación Oficial de Nix: La fuente principal para una guía completa sobre Nix y sus comandos, incluyendo Nix-Shell.
- Guía de Nix para Principiantes: Un recurso excelente para entender los conceptos básicos y comenzar a usar Nix-Shell de manera práctica.
- NixOS Wiki: Un wiki comunitario con una gran cantidad de ejemplos y casos de uso para Nix y Nix-Shell.
- QuePasaLinux: No olvides revisar mi canal para más contenido y tutoriales prácticos sobre estos temas.