Repository navigation
Conversation
…mcode#33) - Cambiar directorio de instalación por defecto a $HOME/.local/bin - Crear el directorio si no existe con mkdir -p - Añadir $HOME/.local/bin al PATH actual y a ~/.profile si no estaba
|
Encontré un bug ahora mismo, dame un minuto |
|
ya |
borjaperfra
left a comment
There was a problem hiding this comment.
Gracias, Gabriel. Estoy de acuerdo en que el instalador no debería pedir root por defecto, pero tal como está el cambio hay cosas que lo rompen:
- Rompe las actualizaciones de quien ya lo tiene instalado. Quien instaló antes tiene
nanen/usr/local/bin, que va antes en el PATH. El binario nuevo se queda en~/.local/biny se sigue ejecutando el viejo sin que nadie se entere. Si ya hay unnanen/usr/local/bin, habría que actualizar ese o, como mínimo, avisar claramente. - El PATH no queda resuelto:
- El
export PATHdentro del script no afecta a la shell del usuario, porquecurl | bashcorre en un proceso hijo. ~/.profileno lo lee zsh (la shell por defecto en macOS), y bash lo ignora si existe~/.bash_profile. Habría que escoger el fichero según$SHELL(.zshrc,.bashrc/.bash_profile,config.fish…).- La línea añade el directorio al final del PATH, así que cualquier
nananterior gana. - La línea escrita siempre dice
${HOME}/.local/bin, aunque se haya cambiadoINSTALL_DIR. En ese caso no habría que tocar ningún profile.
- El
- Mensajes contradictorios: dice "added it" y justo después "add this to your shell profile".
mkdir -psobra:install_binya haceinstall -d.- Faltan actualizaciones: el README, CONTRIBUTING y los comentarios de
.github/workflows/ci.ymlsiguen diciendo/usr/local/bin. La CI de instalación (Install from the published release) tampoco ha corrido en esta PR.
¿Te animas a ajustarlo? Si no, lo retomamos nosotros a partir de la #33.
…les ajenos (helmcode#34) El instalador escribia la linea del PATH en ~/.profile, que zsh no lee y bash ignora si existe ~/.bash_profile, y ademas la ponia al final, con lo que un nan anterior seguia ganando. La linea era fija a ${HOME}/.local/bin aunque se hubiera cambiado INSTALL_DIR, y el mensaje se contradecia. Ahora elige el fichero segun $SHELL (zsh, bash, fish u otro), antepone el directorio, no toca ningun perfil cuando INSTALL_DIR es propio, avisa si otro nan anterior lo tapa, y deja claro que hay que hacer source del perfil o abrir otra terminal porque el export de curl | bash no llega a la shell que lo lanzo. Se quita el mkdir -p redundante, se actualizan README, CONTRIBUTING, la CI y el comentario del instalador de Windows, y se anade una prueba sin red de la logica del PATH.
|
¡Gracias por el repaso, Borja! Todo lo que señalaste era abordable desde el propio instalador. Va punto por punto, con las pruebas al final. 1. Actualizaciones que se rompíanAntes de instalar se captura No actualizamos 2. PATH
3. Mensajes contradictoriosFuera el "added it" + "add this to your shell profile". Ahora queda una sola frase: se añadió al perfil X y hay que Caveat del PATH (lo que no se puede hacer inline)El proceso del instalador no puede modificar la shell que lo lanzó, así que no hay forma de dejarlo listo en la sesión actual. La mitigación es ese mensaje explícito de 4.
|
|
Añadido también a la documentación (README y CONTRIBUTING) que se puede instalar para todos los usuarios con permisos de root/sudo, pasando curl -fsSL https://nan.builders/install | sudo INSTALL_DIR=/usr/local/bin bashComo |
Goal
Resuelve la issue #33: el instalador requería porque instalaba en
/usr/local/bin.Changes
INSTALL_DIR: cambia de/usr/local/bina$HOME/.local/binmkdir -p $INSTALL_DIRantes de instalar$HOME/.local/binno estaba en el PATH, se añade al proceso actual Y se escribe en ~/.profile para que persistaTesting
El script se puede testear con:
# Simular con HOME temporal HOME=/tmp/testuser bash scripts/install.sh VERSION=v0.1.21Verificar que: