Tengo Ubuntu 12.10 ejecutándose como invitado de VMware en mi host de Windows 8.
He compartido una carpeta en mi Windows 8 Host y está montada en el invitado de Ubuntu al inicio usando esta entrada en fstab
:
//myhost/work /work cifs credentials=/home/user/.smbcredentials,noserverino,nounix,uid=user,gid=user,file_mode=0777,dir_mode=0777 0 0
El recurso compartido funciona bien y puede ser atendido por un servidor web como nginx.
Sin embargo, parece haber problemas cuando instalo los paquetes node.js usando npm, obtengo un montón de errores como este:
user@ubuntu:/work/test$ sudo npm install grunt
npm http GET https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/grunt
...
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/work/test/node_modules/grunt/node_modules/lodash'
npm ERR! error rolling back [email protected] { [Error: ENOTEMPTY, rmdir '/work/test/node_modules/grunt/node_modules/lodash']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: '/work/test/node_modules/grunt/node_modules/lodash' }
npm ERR! Error: UNKNOWN, symlink '../which/bin/which'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.5.0-26-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "grunt"
npm ERR! cwd /work/test
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! path ../which/bin/which
npm ERR! code UNKNOWN
npm ERR! errno -1
npm ERR! Error: ENOENT, chmod '/work/test/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.5.0-26-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "grunt"
npm ERR! cwd /work/test
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! path /work/test/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt
npm ERR! fstream_path /work/test/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chmod
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack Object.oncomplete (fs.js:93:15)
npm ERR! Error: ENOENT, lstat '/work/test/node_modules/grunt/node_modules/minimatch/test/basic.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.5.0-26-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "grunt"
npm ERR! cwd /work/test
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! path /work/test/node_modules/grunt/node_modules/minimatch/test/basic.js
npm ERR! fstream_path /work/test/node_modules/grunt/node_modules/minimatch/test/basic.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:93:15)
npm ERR! Error: ENOENT, lstat '/work/test/node_modules/grunt/node_modules/glob/test/00-setup.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
...
npm ERR! not ok code 0
user@ubuntu:/work/test$
¿Qué podría estar causando este problema? Desde la línea de comandos, puedo chmod
, rmdir
entre otras cosas, usar sudo sin ningún problema.
Cómo permitir la creación de enlaces simbólicos en Windows esta página me ayudó mucho, lo que explica que esto suceda incluso si su carpeta compartida se puede escribir.
Para solucionarlo, debe habilitar la función de enlaces simbólicos en VirtualBox.
Ejecutar en cmd prompt:
Luego verifique por:
fuente
De acuerdo con lorem, pero no es suficiente.
ejecute Virtualbox 'como administrador administrativo' en Windows.
asegúrese de ejecutar:
VBoxManage.exe setextradata YOUR_VM BoxInternal2/SharedFoldersEnableSymlinksCreate/YOUR_SHARED_FOLDER 1
Reemplace YOUR_VM y YOUR_SHARED_FOLDER con sus valores. Puede verificar el valor a través de:
VBoxManage.exe getextradata boot2docker-vm enumerate
Hay un error de virtualbox que rastrea este problema.
fuente
Las versiones más recientes de VirtualBox deberían permitir enlaces simbólicos si inicia VirtualBox como Adminstrator (clic derecho: Ejecutar como administrador).
Lo mismo se aplica a los cuadros vagabundos: simplemente ejecute cmd.exe / PowerShell como administrador y listo.
fuente
en este número de npm @drmyersii da una gran solución, solo copiaré y pegaré para no vincular solo la respuesta.
esto funcionó muy bien para mí y ahora puedo usar trago con scotchbox .
fuente
Para mí ninguna de estas respuestas funcionó. No estoy seguro de por qué, pero creo que es porque mi parte es nfs. Por lo tanto, no pude permitir que los enlaces simbólicos incluso cuando se ejecutaba como Administrador y cambiara la configuración de los setextradatos. Estaba trabajando con Gulp y algunos otros paquetes que parecen tener problemas para obedecer --no-bin-links. Todavía intentaba crear algunos enlaces simbólicos y obviamente fallaba. Finalmente, este hilo en Github me dio una idea de una "solución", por muy chiflada que sea. "Simplemente" instalé el proyecto en mi carpeta no compartida y lo configuré como mi NODEPATH.
La advertencia es que afectará a todo el servidor y al flujo de trabajo de actualizar / cambiar el paquete.
fuente