Nodejs + mnp, l'installation de modules sur une 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 :/
- Je pense que NTFS n'ont un lien symbolique équivalent, mais c'est seulement utilisable pour les admins et pas aussi largement utilisé que sur linux, donc peut-être que le pilote ntfs ne le supporte pas.
- toutes les idées sur la façon de résoudre ce problème?
- J'ai rencontré le même problème
Vous devez vous connecter pour publier un commentaire.
Depuis la version 1.2.21, mnp a une nouvelle option pour la
install
de commande.--no-bin-links
Vous pouvez l'utiliser pour installation d'un nœud spécifique module
et aussi d'un paquet.json installer
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)
Le commit où l'option a été ajoutée pour le mécanisme national de prévention de code est b4c58617039c21c10889a9869f8e86a23e17d3a0
Essayer ce - http://ahtik.com/blog/2012/08/16/fixing-your-virtualbox-shared-folder-symlink-error/
Fonctionne pour moi!
Fondamentalement, vous définissez un paramètre
Puis exécuter la machine virtuelle en tant qu'administrateur....
Error: UNKNOWN, symlink '../coffee-script/bin/cake'
après je lancenpm install
Le lien autorisations, ou le
--no-bin-links
n'a pas fonctionné pour nous. Au lieu de cela nous avons décidé de passer notrenode_modules
loin de la/vagrant
partager. Nous avons créé un lien symbolique à partir de/vagrant/node_modules
à/tmp/node_modules
. Vous pouvez faire cela seulement si votrenode_modules
n'est pas dans le contrôle de version. Vérifier cette premier!Voir aussi http://kmile.nl/post/73956428426/npm-vagrant-and-symlinks-on-windows
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.
La hôte les machines ne sont pas au courant du système de fichiers de la invités. Un invité de la machine est un blackbox pour l'hôte. Vous ne pouvez pas dire à l'hôte "eh Bien, ce liens pour
/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 le "dossiers partagés" utilisation est
vboxsf
, quelque chose de si pas le même quesamba
(par défaut protocole de partage réseau pour windows) donc:Il pourrait y avoir un protocole de partage réseau autre que
samba
etnfs
qui permettra peut-être de 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.
Pour ceux qui sont encore à avoir ce problème après avoir essayé
npm install --no-bin-links
.Je n'étais pas en mesure d'obtenir l'une des solutions ci-dessus pour travailler quand je suis tombé sur un problème similaire de course
npm install
sur un Laravel Homestead Vagrant box sur un Windows 7 hôte à l'aide de VirtualBox. L'invité de la boîte a un mappé répertoire du système de fichiers Windows.Le problème était à l'origine de divers messages d'erreur et de l'échec de l'installation des paquets. Celui qui est le plus pertinent pour la question était
npm ERR! UNKNOWN, symlink '<some filename>'
.Pour résoudre ce problème, j'ai été en mesure d'exécuter avec succès
npm install
sur le Git bash en ligne de commande sur Windows plutôt que de bash sur les hôtes Linux.Pour ce faire, vous aurez besoin d'installer Git pour Windows et NodeJS (à la fois sur votre boîte de Windows).
par exemple
choco install nodejs.install
choco install git.install
C:\Program Files (x86)\Git\Git Bash.vbs
cd /c/projects/projectname
npm install
Tout semble s'installer correctement.
Si vous n'utilisez pas les modules natifs (compilé à partir de C/C++), vous pouvez simplement utiliser npm sur votre machine virtuelle Ubuntu et copier le dossier node_modules à vous lecteur windows.
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
cette commande permet de gérer les liens symboliques sous windows. pour une meilleure explication de l'cryptique de commandes à la fin de la visite: Comment puis-je surmonter "Le lien symbolique ne peut être suivie parce que son type est désactivé." erreur lors de l'obtention de la cible d'un lien symbolique sur le Serveur 2008?
en résumé
Le comportement des codes pour la commande fsutil behavior set SymlinkEvaluation - à savoir L2L, L2R, R2L, et R2R - dire les suivantes:
L acronyme de "Local", et R "Remote" (qui aurait thunk?)
La PREMIÈRE L ou R - avant le 2 - fait référence à l'emplacement du lien lui-même (par opposition à sa cible) par rapport à la machine à ACCÉDER au lien.
Le DEUXIÈME L ou R - après 2 se réfère à l'emplacement de la cible du lien par rapport à la machine où le LIEN lui-même est situé.