El instalador construye Nyx desde el código fuente en tu máquina: clona el repositorio, compila el compilador y las herramientas, y deja un comando enlazado en tu PATH. Corre en Linux y en ningún otro lado — install.sh se detiene con un error en cualquier otro sistema operativo.
Qué necesitas
Tres programas — clang, make y git — y tres juegos de cabeceras de desarrollo: libgc, OpenSSL y zlib. No hace falta que los instales a mano: el instalador chequea cada uno e instala los que falten con el gestor de paquetes que encuentre — apt, dnf, pacman, apk, xbps, o pkg en Termux. Fuera de Termux usa sudo para hacerlo.
| Sistema operativo | Linux. Cualquier otro detiene el instalador con un error. |
|---|---|
| Arquitecturas | x86_64, aarch64, armv7l. |
| También soportado | Termux en Android, que usa pkg y no necesita sudo. |
Instalar
$ curl -sSf https://nyxlang.com/install.sh | sh
Esa es toda la instalación. Tarda unos minutos, y casi todos se van en compilar.
Qué hace el instalador
- Chequea la plataforma. Linux más una de las tres arquitecturas de arriba, o se detiene.
- Chequea las dependencias e instala las que falten con tu gestor de paquetes.
- Clona el repositorio en
~/.nyx. Si~/.nyxya es un clon de git, en vez de clonar hace fetch y reset. - Compila el compilador a partir de los archivos semilla de LLVM IR que vienen commiteados en el repositorio.
- Compila las herramientas: el gestor de paquetes, el corredor de tests, el chequeador, vet y el formateador. Cada uno es un binario aparte, y todos se construyen acá — por eso la instalación no es instantánea.
- Ordena el árbol: los binarios pasan a
~/.nyx/bin/y se borra todo lo que no hace falta para ejecutar Nyx, conservando el runtime en C, la biblioteca estándar, las plantillas de proyecto y el changelog. - Enlaza el comando:
~/.local/bin/nyxapunta al wrapper que vive dentro de~/.nyx. En Termux el enlace va a$PREFIX/bin/nyx. - Arregla tu PATH si
~/.local/binno estaba, agregando una líneaexporta~/.bashrc,~/.zshrco~/.profile— el primero que exista.
Verificar
$ nyx --version nyx 0.31.0
Si el shell responde command not found, el enlace existe pero este shell todavía no tomó el PATH nuevo. Mira Problemas comunes, más abajo.
Actualizar
$ nyx update
Trae la versión más reciente a ~/.nyx, recompila el compilador y las cinco herramientas, y después imprime dos cosas que vale la pena leer: What's new, las entradas del changelog entre la versión que tenías y la que quedó, y las trampas que ya no hace falta esquivar — los gotchas corregidos en el medio, sacados de la tabla propia de la toolchain y no de una lista escrita a mano.
Actualizar la toolchain no actualiza los documentos ya sembrados dentro de tus proyectos. Dentro de un proyecto, nyx update --sync-docs los refresca y deja un .bak de todo lo que reemplaza. El paso 04 cuenta qué son esos documentos.
Desinstalar
$ nyx uninstall Uninstalling Nyx... Nyx has been uninstalled. Removed: ~/.nyx/ Removed: ~/.local/bin/nyx
Borra ~/.nyx y ~/.local/bin/nyx. Tus proyectos quedan intactos — son directorios comunes con archivos de código.
Termux
Termux se detecta solo y se trata como un destino de primera: los paquetes vienen de pkg, nada corre con sudo, y el comando se enlaza en $PREFIX/bin, que ya está en tu PATH — así que no hay perfil que editar ni terminal nueva que abrir.
Compilar desde el código fuente
Si prefieres no correr un instalador, el repositorio se construye solo. Este también es el camino si quieres trabajar sobre el compilador.
$ sudo apt install clang make git libgc-dev libssl-dev zlib1g-dev $ git clone https://github.com/nyxlang-dev/nyx.git $ cd nyx $ make bootstrap
make bootstrap produce nyx_bootstrap a partir de los archivos semilla de LLVM IR commiteados en el repositorio — así se construye un compilador que se hospeda a sí mismo sin tenerlo ya instalado.
Problemas comunes
No supported package manager found
El instalador conoce apt, dnf, pacman, apk, xbps y el pkg de Termux. En cualquier otro se detiene e imprime la lista de paquetes que quería; instálalos a mano con tu propio gestor y corre el instalador de nuevo.
nyx: command not found, recién instalado
El enlace está; el PATH de este shell no. El instalador lo dice cuando pasa, y te indica qué archivo editó:
$ source ~/.bashrc
Abrir una terminal nueva funciona igual de bien.
Un aviso sobre libgc durante la instalación
Si tu distribución trae un libgc/bdwgc anterior a 8.2, el instalador avisa y sigue:
warn libgc/bdwgc 8.0.4-1 detected (< 8.2 required for healthy concurrency under load).
Por debajo de 8.2 falta una función de la que depende el scheduler, y el recolector de basura puede hacer crashear un programa con muchas tareas concurrentes. Los programas de un solo hilo no se ven afectados. El runtime repite el aviso al arrancar cuando ocurre, así que el problema nunca es silencioso — pero la solución real es actualizar el paquete.