30 votes

Nodejs + npm, installation de modules sur la partition ntfs

J'ai un problème lors de l'installation de modules npm. NodeJS est installé sur Ubuntu 11.10 en cours d'exécution sur Virtual Box sur l'hôte Windows. Mon projet sont les fichiers sur une partition NTFS (j'ai à partager avec windows). Lorsque j'essaie d'installer le module npm j'obtiens une erreur, et le module n'est pas installé. J'ai découvert ce problème se produit lorsque mnp essaie de créer des liens symboliques.

Probablement vous ne pouvez pas créer des liens symboliques sur une partition NTFS, quand je suis à l'installation du module de "l'intérieur" du système de fichiers Linux, tout fonctionne bien.

Comment puis-je résoudre ce problème? Je ne veux pas de résoudre les dépendances à la main :/

41voto

blackjid Points 527

Depuis la version 1.2.21, mnp a une nouvelle option pour l' install commande. --no-bin-links

Vous pouvez l'utiliser pour installation d'un nœud spécifique du module

npm install express --no-bin-links

et aussi d'un paquet.json installer

npm install --no-bin-links

Avec cette option, que j'ai été en mesure d'installer de nombreux modules npm sans problème dans mon partagé forlder l'intérieur de la VM (Ubuntu invité, Hôte Windows)

La validation d'où l'option a été ajoutée pour le mécanisme national de prévention de code est b4c58617039c21c10889a9869f8e86a23e17d3a0

5voto

Mahbub Points 102

Essayez ceci - http://ahtik.com/blog/2012/08/16/fixing-your-virtualbox-shared-folder-symlink-error/

Travaille pour moi!

Fondamentalement, vous définissez un paramètre

VBoxManage setextradata YOURVMNAME VBoxInternal2 / SharedFoldersEnableSymlinksCreate / YOURSHAREFOLDERNAME 1

Et puis exécutez la machine virtuelle en tant qu'administrateur ....

4voto

Kamiel Wanrooij Points 4944

Le lien autorisations, ou l' --no-bin-links n'a pas fonctionné pour nous. Au lieu de cela nous avons décidé de passer notre node_modules loin de l' /vagrant partager. Nous avons créé un lien symbolique à partir de /vagrant/node_modules de /tmp/node_modules. Vous pouvez faire cela seulement si votre node_modules n'est pas dans le contrôle de version. Cochez cette première!

Voir aussi http://kmile.nl/post/73956428426/npm-vagrant-and-symlinks-on-windows

3voto

antitoxic Points 1804

Je suis pratiquement certaine que les liens symboliques ne peut pas être créé sur le lecteur partagé ("dossier partagé"). Encore plus impossible à faire avec un Windows de la machine hôte et un invité Linux.

L' hôte des machines ne sont pas au courant du système de fichiers des clients. Un invité de la machine est un blackbox pour l'hôte. Vous ne pouvez pas dire à l'hôte "eh Bien, ce liens vers d' /etc/..." lorsque l'hôte ne sais pas où cela /etc est :).

Donc en bref: malheureusement non.


Un peu plus en détail:

Je serais vraiment heureux si je me trompe! C'est une grande douleur dans mon processus de développement.

J'ai essayé de nombreuses options. Par défaut, le système de fichiers que les "dossiers partagés" utilisation est - vboxsf, quelque chose de si pas le même que samba (par défaut protocole de partage réseau pour windows) donc:

  1. J'ai essayé d'utiliser Windows natif de partage de réseau et puis monter le lecteur réseau dans l'invité de l'invité et l'hôte sont sur le même réseau. Le problème était toujours là.
  2. J'ai essayé de l'exécution d'un serveur NFS sous windows (Hanewin NFS Server) avec SFU/SUA (Windows Services for UNIX), mais cela a des problèmes avec GIT serrures. Probablement d'autres problèmes - c'était il y a longtemps et je ne me souviens clairement
  3. J'ai essayé l'inverse: le partage d'un répertoire sur la machine virtuelle de windows. Mais c'est stupide que tous les fichiers seront sur la virtual box et est reaally lent à l'accès sur windows
  4. J'étais stupide et je l'ai bien "et bien nous allons monter un lecteur virtuel sur windows et linux" - n'essayez pas ceci, corrompt le disque virtuel. Quelque chose que je devrait l'avoir connu.

Il y a peut être un protocole de partage réseau autre que samba et nfs qui sera peut-être copier les fichiers à chaque fois "symlink" la création est tenté de le faire? Je ne sais pas vraiment.

Cependant, je n'ai pas trouvé un encore et aussi "verrouillage" semble être une tâche du système de fichiers lui-même, donc je doute qu'un protocole réseau (à moins d'avoir un registre dédié, de la sorte, pour les serrures) peuvent le faire.

0voto

muffel Points 1059

Si vous n'utilisez pas de modules natifs (compilés à partir de C / C ++), vous pouvez simplement utiliser npm sur votre machine virtuelle Ubuntu et copier le dossier node_modules sur votre lecteur Windows.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X