npm lanza error sin sudo


Acabo de instalar node y npm a través del paquete en nodejs.org y cada vez que intento buscar o instalar algo con npm lanza el siguiente error, a menos que sudo el comando. Tengo la sensación de que esto es un problema de permisos? Ya soy el administrador.

npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR!  { [Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/Users/chietala/.npm/-/all/.cache.json' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 12.2.0
npm ERR! command "node" "/usr/local/bin/npm" "search" "bower"
npm ERR! cwd /Users/chietala
npm ERR! node -v v0.10.4
npm ERR! npm -v 1.2.18
npm ERR! path /Users/chietala/.npm/-/all/.cache.json
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/chietala/npm-debug.log
npm ERR! not ok code 0
Author: Alisson Linneker, 2013-04-22

30 answers

Esto parece un problema de permisos en su directorio personal. Para reclamar la propiedad de la .npm directorio ejecutar:

sudo chown -R $(whoami) ~/.npm
 1880
Author: Noah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-27 07:54:25

Los permisos que usó al instalar Node serán necesarios cuando haga cosas como escribir en su directorio npm (npm link, npm install -g, etc.).

Probablemente ejecutó la instalación de nodos con permisos de root, por eso la instalación global de paquetes le pide que sea root.


Solución 1: NVM

No hackear con permisos, instalar nodo de la manera correcta.

En una máquina de desarrollo, no debe instalar y ejecutar node con root permisos, de lo contrario cosas como npm link, npm install -g necesitará los mismos permisos.

NVM (Node Version Manager) le permite instalar Node sin permisos de root y también le permite instalar muchas versiones de Node para jugar fácilmente con ellos.. Perfecto para el desarrollo.

  1. Nodo de desinstalación (probablemente se requerirá permiso de root). Esto podría ayudarte.
  2. Luego instale NVM siguiendo las instrucciones en este page .
  3. Instalar nodo a través de NVM: nvm install node

Ahora npm link, npm install -g ya no requerirá que seas root.

Editar: Véase también https://docs.npmjs.com/getting-started/fixing-npm-permissions


Solución 2: Instalar paquetes globalmente para un usuario dado

No hackear con permisos, instalar paquetes npm globalmente de la manera correcta.

Si está en OSX o Linux, puede crear un directorio dedicado de usuario para su paquete global y configure npm y node para saber cómo encontrar paquetes instalados globalmente.

Echa un vistazo este gran artículo para instrucciones paso a paso sobre la instalación de módulos npm globalmente sin sudo.

Ver también: documentación de npm sobre Fijación de permisos npm.

 493
Author: Yves M.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-12 21:37:42

También necesitará el permiso de escritura en el directorio node_modules:

sudo chown -R $USER /usr/local/lib/node_modules
 384
Author: Xilo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-12 15:40:00

Me encontré con esto al instalar Recess (https://github.com/twitter/recess ) para compilar mi CSS para Bootstrap 3.

Al instalar recess:

-npm install recess -g
  1. Necesitas desbloquear permisos en tu directorio home, como Noah dice:

    sudo chown -R `whoami` ~/.npm
    
  2. También necesita permisos de escritura en el directorio node_modules, como Xilo dice, así que si todavía no está funcionando, intente:

    sudo chown -R `whoami` /usr/local/lib/node_modules
    
  3. Si todavía está viendo errores, también puede necesitar corregir /usr/local permisos :

    sudo chown -R `whoami` /usr/local
    

Tenga en cuenta que como se indica en este post /usr/local/ en realidad, no es un directorio del sistema si está en una Mac, por lo que esta respuesta es perfectamente "segura" para los usuarios de Mac. Sin embargo, si está en Linux, vea La respuesta de Christopher Will a continuación para una solución multiusuario, segura de dir del sistema (pero más compleja).

 55
Author: danomarr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:27

Cambiar el propietario en las carpetas "system-global" es un truco. En una instalación nueva, configuraría NPM para usar una ubicación ya editable para programas "user-global":

npm config set prefix ~/npm

Luego asegúrese de agregar esa carpeta a su ruta:

export PATH="$PATH:$HOME/npm/bin"

Ver @ErikAndreas' respuesta a Los módulos NPM no se instalarán globalmente sin sudo and longer step-by-step guide by @sindresorhus with also sets $MANPATH.

 51
Author: Joel Purra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:10:47

Otras respuestas sugieren cambiar la propiedad o los permisos de los directorios del sistema a un usuario específico. Me disadvise altamente de hacerlo, esto puede llegar a ser muy incómodo y podría estropear todo el sistema!

Aquí hay un enfoque más genérico y más seguro que también admite múltiples usuarios.

Cree un nuevo grupo para node-users y agregue los usuarios requeridos a este grupo. A continuación, establezca la propiedad de los archivos/directorios dependientes del nodo en este grupo.

# Create new group
sudo groupadd nodegrp 

# Add user to group (logname is a variable and gets replaced by the currently logged in user)
sudo usermod -a -G nodegrp `logname`

# Instant access to group without re-login
newgrp nodegrp

# Check group - nodegrp should be listed as well now
groups

# Change group of node_modules, node, npm to new group 
sudo chgrp -R nodegrp /usr/lib/node_modules/
sudo chgrp nodegrp /usr/bin/node
sudo chgrp nodegrp /usr/bin/npm

# (You may want to change a couple of more files (like grunt etc) in your /usr/bin/ directory.)

Ahora puedes instale fácilmente sus módulos como usuario

npm install -g generator-angular

Algunos módulos (grunt, bower, yo, etc.) todavía tendrá que ser instalado como root. Esto se debe a que crean enlaces simbólicos en / user / bin/.

Editar

3 años después recomendaría usar Node Version Manager. Te asegura mucho tiempo y problemas.

 34
Author: Christopher Will,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-21 08:06:54

¡Cuidado!!! ¡Cuidado!!! ¡Cuidado!!!

Chown o chmod es NO la solución, debido al riesgo de seguridad.

En lugar de hacer esto, hacer:

Primera comprobación, a dónde apunta npm, si llama:

npm config get prefix

Si se devuelve /usr, puede hacer lo siguiente:

mkdir ~/.npm-global
export NPM_CONFIG_PREFIX=~/.npm-global
export PATH=$PATH:~/.npm-global/bin

Esto crea un npm-Direktory en tu Directorio Home y apunta npm a él.

Para conseguir que este cambio sea permanente, tienes que añadir el comando export - a tu .bashrc:

echo -e "export NPM_CONFIG_PREFIX=~/.npm-global\nexport PATH=$PATH:~/.npm-global/bin" >> ~/.bashrc
 15
Author: suther,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-04 09:01:32

La documentación oficial sobre cómo corregir los permisos npm install con un error EACCES se encuentra en https://docs.npmjs.com/getting-started/fixing-npm-permissions .

Encontré este problema después de una nueva instalación de node usando el instalador .pkg en OSX. Hay algunas respuestas geniales aquí, pero no vi un enlace a npmjs.com aún.

Opción 1: Cambiar el permiso al directorio predeterminado de npm

  1. Encontrar el camino a directorio de npm:

    npm config get prefix
    

Para muchos sistemas, esto será /usr/local.

ADVERTENCIA: Si la ruta mostrada es solo /usr, cambie a Opción 2.

  1. Cambie el propietario de los directorios de npm por el nombre del usuario actual (¡su nombre de usuario!):

    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    

    Esto cambia los permisos de las subcarpetas utilizadas por npm y algunas otras herramientas (lib / node_modules, bin , y compartir).

Opción 2: Cambiar el directorio predeterminado de npm a otro directorio

Hay momentos en los que no desea cambiar la propiedad del directorio predeterminado que usa npm (es decir, /usr), ya que esto podría causar algunos problemas, por ejemplo, si comparte el sistema con otros usuarios.

En su lugar, puede configurar npm para que use un directorio completamente diferente. En nuestro caso, este será un directorio oculto en nuestra casa carpeta.

  1. Crea un directorio para instalaciones globales:

    mkdir ~/.npm-global
    
  2. Configure npm para usar la nueva ruta del directorio:

    npm config set prefix '~/.npm-global'
    
  3. Abra o cree un~/.archivo de perfil y añadir esta línea:

    export PATH=~/.npm-global/bin:$PATH
    
  4. De nuevo en la línea de comandos, actualice las variables del sistema:

    source ~/.profile
    
 12
Author: HoppyKamper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-23 20:46:22

Como si necesitáramos más respuestas aquí, pero de todos modos..

Sindre Sorus tiene una guía Instalar paquetes npm globalmente sin sudo en OS X y Linux describiendo cómo instalar limpiamente sin interferir con los permisos:

Aquí hay una forma de instalar paquetes globalmente para un usuario dado.

  1. Crea un directorio para tus paquetes globales

    mkdir "${HOME}/.npm-packages"
    
  2. Haga referencia a este directorio para su uso futuro en su .bashrc/.zshrc:

    NPM_PACKAGES="${HOME}/.npm-packages"
    
  3. Indique a npm dónde almacenar su paquete instalado globalmente. En su archivo $HOME/.npmrc agregue:

    prefix=${HOME}/.npm-packages
    
  4. Asegúrese de que node los encuentre. Añadir lo siguiente a su .bashrc/.zshrc:

    NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
    
  5. Asegúrese de que encontrará los binarios instalados y las páginas de manual. Añadir lo siguiente a su .bashrc/.zshrc:

    PATH="$NPM_PACKAGES/bin:$PATH"
    # Unset manpath so we can inherit from /etc/manpath via the `manpath`
    # command
    unset MANPATH # delete if you already modified MANPATH elsewhere in your config
    MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
    

Echa un vistazo a npm-g_nosudo para hacer los pasos anteriores automagically

Consulte la fuente de esta guía para obtener las últimas actualizaciones.

 11
Author: ptim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-25 04:06:04

Cuando ejecuta npm install-g somepackage, puede obtener un error EACCES pidiéndole que ejecute el comando nuevamente como root/Administrator. Es un problema de permisos.

Es fácil de arreglar , abra su terminal (Aplicaciones > Utilidades > Terminal)

sudo chown -R $USER /usr/local/lib/node_modules

* * Le recomiendo encarecidamente que no use la administración de paquetes con sudo (sudo npm-g install something), porque puede obtener algunos problemas más adelante * *

Referencia: http://foohack.com/2010/08/intro-to-npm /

 8
Author: Juancarlos Rodríguez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-12 06:53:03

Para Mac (adoptado de la respuesta de Christoper Will)

Mac OS X 10.9.4

  1. Preferencia del sistema > Usuarios y grupos > (desbloquear) > pulse +:

    Nueva cuenta > "Grupo"
    Nombre de la cuenta: nodegrp

    Después de crear el grupo, marque el usuario que se incluirá en este grupo

  2. Sudo chgrp-R nodegrp / usr / local / lib/node_modules /
    sudo chgrp nodegrp/usr/bin / node
    sudo chgrp nodegrp/usr/bin / npm
    sudo chown-R who (whoami):nodegrp ~/.mnp

 7
Author: ken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-10 05:16:39

TL;DR

Utilice siempre sudo -i o sudo -H cuando ejecute npm install para instalar paquetes globales.

--

Cuando usa npm descarga paquetes a su directorio personal de usuario. Cuando se ejecuta como sudo, npm instala archivos en el mismo directorio, pero ahora son propiedad de root.

Así que esto es lo que le sucede a absolutamente cada persona que ha usado npm:

  • instale algunos paquetes locales sin problemas usando npm install foo
  • instalar el paquete global usando sudo install -g foo-cli sin problema
  • intenta instalar el paquete local con npm install bar
  • frustrarse con los diseñadores npm ahora que usted tiene que ir chmod un directorio de nuevo

Cuando usa la opción -i o -H con sudo, su directorio personal será el directorio personal de root. Cualquier instalación global almacenará en caché los paquetes en /root/.npm en lugar de los archivos propiedad de root en /home/me/.npm.

Solo use siempre sudo -i o sudo -H cuando se ejecuta npm install para instalar paquetes globales y sus problemas de permisos npm desaparecerán.

Para siempre.

Http://hood.ie/blog/why-you-shouldnt-use-sudo-with-npm.html

-- pregunta la respuesta aceptada para arreglar un ya jodido npm.

 6
Author: rich remer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-29 17:16:28

Tuve un problema similar en Los módulos NPM no se instalarán globalmente sin sudo, el problema fue que cuando instalé node lo hice con sudo a través de chris/lea ppa repo.

Mi solución fue desinstalar node y luego instalarlo de esta manera:

Descargue las últimas fuentes de nodos estables de nodejs.org #en mi caso node-v0. 10.20.alquitrán.gz

Nodo Tar-zxf-v0.10.20.alquitrán.gz # descomprimir fuentes

Cd node-v0.10.20 #ingresar carpeta sin comprimir

Sudo chown USER USER-R/usr / local

./configure --prefix=/usr/local && make && make install

PD: Si no desea cambiar la propiedad de la carpeta /usr/local, puede instalarla en algún lugar que ya posea. El problema de este enfoque es que tendrá que enlazar la carpeta de instalación con la línea de comandos bash para que podamos usar el comando node más adelante

Mkdir ~ / opt

./configure --prefix=~/opt && make && make install

Echo 'export PATH=~/opt/bin: {{PATH}' >> ~/.bashrc #o ~/.perfil o ~/.bash_profile o ~/.zshenv dependiendo del Sistema Operativo actual

Con cualquiera de esos enfoques, podrá hacer lo siguiente sin usar sudo

Npm install-g module_to_install

 5
Author: HeberLZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:36

En mi caso, es por el permiso de ~/tmp.So Lo hago:

sudo chown -R $USER ~/tmp

Y está bien!

 5
Author: bnPYSse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-27 22:52:47

Para mí, ejecutar solo

sudo chown -R $(whoami) ~/.npm

No funciona. Entonces, yo también ejecuto

sudo chown -R $(whoami) /usr/lib/node_modules/
sudo chown -R $(whoami) /usr/bin/node
sudo chown -R $(whoami) /usr/bin/npm

Y todo funciona bien!

 3
Author: user3753202,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-15 01:16:35

Problema: No tiene permiso para escribir en los directorios que npm usa para almacenar paquetes y comandos globales.

Solución: Permitir permiso para npm.

Abrir una terminal:

Comando + barra espaciadora luego escriba'terminal'

Introduzca este comando:

Sudo chown-R ((whoami) get (npm config get prefix)/{lib / node_modules,bin,share}

  • Nota: esto requerirá su contraseña.

Esta solución permite permiso para SOLO los directorios necesarios, manteniendo los otros directorios agradables y seguros.

 3
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-06 19:11:11

En Mac OS X, al instalar con Homebrew brew install npm, la ruta de instalación es /usr/local/share/npm/ con las subcarpetas bin/ y lib/node_modules/.

Ejecutar este comando para cambiar a propietario a su usuario actualmente conectado debería solucionarlo todo y permitirle instalar paquetes NPM globales sin sudo.

sudo chown -R $USER ~/.npm /usr/local/share/npm/

Osx homebrew

 2
Author: Joel Purra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-28 07:15:30

Así es como resolví el problema en Windows 8.1:

  • Vaya a su instalación de nodejs (generalmente C:\Program Files\nodejs)
  • Haga clic con el botón derecho en la carpeta node_modules y vaya a propiedades
  • Haga clic en la pestaña Seguridad y avanzado
  • En la parte superior verá "Propietario: SISTEMA", haga clic en cambiar
  • Introduzca el usuario para el que desea permisos y haga clic en Aceptar
  • Marque la casilla en la parte inferior de la configuración avanzada " Reemplazar todas las entradas de permisos de objetos secundarios con heredables entradas de permiso de este objeto " y haga clic en ok
  • Haga cualquier instalación/actualización de npm que necesite
 2
Author: KCaradonna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-03 14:26:36

En caso de que sudo chown -R $(whoami) ~/.npm no funcione para usted, o necesite una solución de comando no terminal.

El problema es que su cuenta de usuario no tiene permiso de escritura en la carpeta node_modules, por lo que puede hacer lo siguiente

  1. Abrir finder y pulsar cmd + shift + g esto abrirá ir a la carpeta con url

  2. Escribe la siguiente ruta /usr/local/lib/node_modules y presiona go

  3. Haga clic derecho en la carpeta node_modules y elija Get Info

  4. Desplazamiento hasta sharing & permissions la sección

  5. Desbloquea para poder hacer cambios.

  6. Presione + y agregue su cuenta de usuario

  7. Asegúrese de elegir Read & Write en el menú desplegable de privilegios

Ahora debería poder instalar paquetes sin sudo y los problemas de permisos deberían resolverse

 2
Author: Amr Labib,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-07 05:22:39

En realidad, yo también estaba teniendo el mismo problema. Estaba corriendo Ubuntu. El problema mío surge porque perdí mi clave pública de Ubuntu. Incluso la actualización de mi sistema no estaba sucediendo. Estaba dando error GPG. En ese caso, puede recuperar su clave utilizando este comando:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <key in GPG error>

Después de que npm funciona bien!

 1
Author: sam100rav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-13 12:42:44

John Papa señala la historia y el razonamiento detrás de este problema y da una solución sólida :

Los pasos de Juan Papa son:

  1. Use brew para instalar el nodo sin npm
  2. Actualizar su .bash_profile/.bashrc para que npm y node sepan dónde instalar y encontrar paquetes
  3. Use brew para actualizar el nodo y npm para actualizarse

Espero que esto ayude a los curiosos!

 1
Author: theship,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-10 18:12:08

Si aparece algo como el siguiente durante la instalación de npm o Desea instalar paquetes globalmente en un Mac, use Sudo

Npm ERR! código EACCES
npm ERR! errno -13
npm ERR! acceso syscall

 1
Author: Ignatius Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-09 14:25:46

PROBLEMA : Usted (el usuario) no tiene el conjunto correcto de permisos para el directorio.

La salida instantánea es ejecutar la instalación de npm usando sudo, pero esto puede darle el mismo error o una instalación incorrecta.

Y cambiar la propiedad del directorio no es una buena opción, un parche temporal.


Solución/Sugerencia : Cambiar el directorio predeterminado de npm (desde documentos oficiales )

Haga una copia de seguridad de su computadora antes de moverse adelante.

(opcional) En caso de que tenga una instalación errónea, primero desinstálela:

npm uninstall <package-name>  # use sudo if you used it while installation
npm cache verify  # or, npm cache clean for npm version below 5.x.x 
  1. Crea un directorio para instalaciones globales:

    mkdir ~/.npm-global

  2. Configure npm para usar la nueva ruta del directorio:

    npm config set prefix '~/.npm-global'

  3. Abra o cree un archivo ~/.profile o ~/.bash_profile y agregue esta línea:

    export PATH=~/.npm-global/bin:$PATH

  4. De vuelta en la línea de comandos, actualice las variables del sistema, o reinicie el terminal:

    source ~/.profile

  5. (opcional) Prueba: Descargue un paquete globalmente sin usar sudo.

    npm install -g jshint

 1
Author: Nabeel Ahmed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-26 11:09:23

Si cambia los permisos para el directorio /usr/local/lib/npm_modules no ayuda, u debe agregar su usuario al grupo (en la mayoría de los casos este es staff group), que tiene derechos rwx para el directorio /usr/bin. Porque npm intenta hacer symlink con /usr/bin/__package__.

P.d. No se olvide de volver a iniciar sesión después de cambiar el grupo de usuarios

 0
Author: Victor Perov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-25 18:13:17

Esta es la solución que utilicé y trabajé. Traté de utilizar whoami nunca funcionó.

sudo chown -R $USER /usr/local/lib/node_modules

Luego

sudo chown -R $USER /usr/local/bin/npm

Luego

sudo chown -R $USER /usr/local/bin/node

 0
Author: Casey Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-12 14:59:43

Otra gran solución aquí para configurar NPM correctamente, ejecute los siguientes comandos:

npm config set prefix '~/.npm_packages'
PATH=$PATH:$HOME/.npm_packages/bin; export PATH
 0
Author: Guillaume Le Mière,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-25 12:50:56

La respuesta de@Yves M. fue muy similar a mi solución. Aquí están los comandos que usé, que eran ligeramente diferentes de los suyos.

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

Luego consulta la última versión:

nvm ls-remote

A continuación, instale la versión más reciente:

nvm install YOUR_VERSION_HERE

Ejemplo

nvm install v5.8.0
 0
Author: Ryan Loggerythm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-14 04:02:18

Lo que a mí me parece la mejor opción es la sugerida en la documentación de npm, que es comprobar primero dónde están instalados los módulos globales node_modules por defecto ejecutando npm config get prefix. Si consigues, como lo hago en Trusty, /usr, es posible que quieras cambiarlo a una carpeta que puedas poseer de forma segura sin estropear las cosas de la manera que lo hice.

Para hacer eso, elija o cree una nueva carpeta en su sistema. Es posible que desee tenerlo en su directorio personal o, como yo, en /usr/local para mayor coherencia porque también soy un usuario de Mac (prefiero no tener que buscar en diferentes lugares dependiendo de la máquina en la que esté delante). Otra buena razón para hacerlo es el hecho de que la carpeta /usr/local probablemente ya esté en su RUTA (a menos que le guste jugar con su RUTA), pero es probable que su carpeta recién creada no lo esté y tendría que agregarla a la RUTA usted mismo en su .bash-profile o .archivo bashrc.

En resumen, cambié la ubicación predeterminada de los módulos globales con npm config set prefix '/usr/local', creó la carpeta /usr/local/lib/node_modules (será utilizada por npm) y cambió los permisos para las carpetas utilizadas por npm con el comando:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Ahora puede instalar cualquier módulo de forma global y segura. Espero que esto ayude!

 0
Author: yago,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-19 14:39:37

No tomo crédito por esta solución. Gracias a este tipo: https://gist.github.com/isaacs/579814

# take ownership of the folders that npm/node use
# please don't do this if you don't know what it does!
sudo mkdir -p /usr/local/{share/man,bin,lib/node,include/node}
sudo chown -R $USER /usr/local/{share/man,bin,lib/node,include/node}

# now just a pretty vanilla node install
# let it use the default paths, but don't use sudo, since there's no need
mkdir node-install
curl http://nodejs.org/dist/node-v0.4.3.tar.gz | tar -xzf - -C node-install
cd node-install/*
./configure
make install

# now the npm easy-install
curl https://www.npmjs.org/install.sh | sh

Y luego ...

sudo chown -R web:web /home/web/api/
sudo runuser -l web -c 'npm install --prefix /home/web/api'

De esta manera node nunca se ejecuta como root y el usuario puede instalarlo sin sudo.

 0
Author: BugHunterUK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-24 21:13:29

Puedes probar esto

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
 0
Author: Adeojo Emmanuel IMM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-27 08:03:18