Comando no encontrado al ejecutar el paquete node.js n en sudo


13

Estoy tratando de actualizar mi versión del nodo a la última versión estable.

Usando este recurso pude:

sudo npm install n -g

Pero cuando lo intento

sudo npm n stable

Yo obtengo:

sudo: n: command not found

Si ejecuto n stable, el comando está presente:

n stable
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

     install : node-v0.12.2
       mkdir : /usr/local/n/versions/node/0.12.2
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

  Error: sudo required

Buena idea, pero cuando hago eso me devuelve 'n: comando no encontrado', a pesar de que he dejado el 'sudo'
— JonRed

sudo sh -c "RUTA = $ RUTA; n estable" <nueva línea> sh: 1: n: no encontrado
— JonRed

No hay salida en absoluto. Eso es deprimente :-(
— JonRed


Por favor publique la salida dels /usr/local/bin/n
— Helio

Respuestas:


5

Sorprendentemente, su npminstalación tiene el prefijo global en una carpeta llamada npmen su directorio de inicio, esto significa que cualquier paquete instalado con la -gbandera se instalará en esta carpeta.

Puede cambiar esta carpeta a cualquier carpeta que esté en la sudoruta segura siguiendo estos pasos:


Forma gráfica:

  1. Abra un Administrador de archivos (también conocido como Nautilus).
  2. Navega a tu carpeta de inicio.
  3. Presione Ctrl+ Hpara mostrar los archivos ocultos.
  4. Abra un archivo llamado .npmrccon su editor de texto favorito.
  5. Encuentre una línea en ese archivo con este contenido:

    prefix=/home/<your_username>/npm
    
  6. Sustitúyalo /home/<your_username>/npmpor una ruta segura (como /usr/local/bin).
  7. Una vez reemplazado se verá así:

    prefix=/usr/local/bin
    
  8. Guarda el archivo.
  9. Corre de nuevo sudo npm install n -g

Camino terminal:

Ejecute este comando:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc

Creo que esto lo clavó! También me ayudó en este momento cuando actualicé mi versión de npm, pero no lo reconocí. Entonces, aceptado, ¡y gracias!
— JonRed

No ayudó, sigue siendo el mismo problema: /
— Luckylooke

Esto me ayudó! No tenía el archivo ~ / .npmrc, así que lo agregué y ahora funciona bien
— Kirill Gusyatin

2
Cuidado: esto anulará la Opción 2 de arreglar los permisos de NPM
— Edson Horacio Junior


2

Sé que este es un foro de Ubuntu, pero estoy seguro de que ayudará a alguien con el mismo problema en los sabores de RHEL que buscó en Google aquí como lo hice yo. Quizás también funcione en Ubuntu.

Este es el enfoque :

ln -s /usr/local/bin/n /usr/bin/n

0

Para evitar equivocarse con la .npm-globalcarpeta como señaló @Edson Horacio Junior, y según la respuesta de @pohest , así es como lo arreglé:

sudo ln -s /home/<username>/.npm-global/bin/n /usr/local/bin/n
sudo n --version # test it

Como nota, esto probablemente no funcionará si no ha seguido los pasos de npm para cambiar el directorio global predeterminado .


0

Encontré una solución que funcionó para mí. Use el nvmpaquete para descargar el último nodo.

  1. Instale nvm usando el siguiente comando

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

  1. Crear una variable de entorno para usar nvm
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  1. Prueba nvm -vsi no puede ver nvminstalado, ejecuta el script a continuación

command -v nvm

  1. Para instalar el nodo, ejecute el comando a continuación

nvm install node

  1. Después de reiniciar el terminal, intente verificar la versión del nodo, debe actualizarse

node -v

Más información aquí: https://github.com/nvm-sh/nvm


0

Esto significa que no tiene N instalado en su sistema, N es un administrador de versiones de nodo basado en npm. Puede instalarlo instalando primero alguna versión del nodo y luego ejecutando

sudo npm install -g n

ahora puede instalar la versión en el nodo usando el comando n

sudo n stable

Lo anterior instalará la última versión estable

sudo n lates

esto instalará la versión lates

También puede instalar la versión específica especificando la versión de la siguiente manera

sudo n  10.16.0

0

Ninguna de las respuestas anteriores funcionó para mí. Esto sin embargo esto hizo:

sudo /usr/local/bin/bin/n stable

-1

Encontré el mismo problema, así es como puedes resolverlo:

  1. Obtener el prefijo de configuración npm
    npm config get prefix 
    // get -> ${myhome}/.npm-global
  2. Agregue las siguientes líneas en .zshrc

    # Specify `n` to put the version of `node` in the `.n` directory.
    export N_PREFIX=${myhome}/.npm-global/.n
    
    # Make `nman` command work
    export PATH=${myhome}/.npm-global/bin:$PATH
    
    # Add this line to use `node -v` command
    export PATH=${myhome}/.npm-global/.n/bin:$PATH

Referencia: GitHub - tj / n: gestión de versiones de nodo

Nota del editor: esta respuesta se escribió originalmente en chino y se ha traducido y editado con herramientas en línea. Para ver la respuesta original, consulte la Revisión n. ° 1

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.