69 votes

La commande karma n'a pas été trouvée alors que karma est déjà installé

J'ai utilisé node.js pour installer karma. Ma première tentative a échoué en exécutant la commande suivante dans Terminal:

npm install -g karma

Cela a échoué donc j'ai décidé d'utiliser:

sudo npm install -g karma

Après avoir entré mon mot de passe, il semblait s'installer correctement. Je colle une partie de la sortie de l'installation, peut-être que cela signifiera quelque chose pour quelqu'un et cela sera pertinent pour ma question. Après tous les messages http de npm, voici ce que je vois:

> ws@0,4,27 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  SOLINK_MODULE(target) Release/bufferutil.node: Finished
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node
  SOLINK_MODULE(target) Release/validation.node: Finished
/usr/local/share/npm/bin/karma -> /usr/local/share/npm/lib/node_modules/karma/bin/karma
karma@0,8,6 /usr/local/share/npm/lib/node_modules/karma
 pause@0,0,1
 dateformat@1,0,2-1,2,3
 xmlbuilder@0,4,2
 colors@0,6,0-1
 chokidar@0,6,2
 growly@1,1,1
 mime@1,2,9
 q@0,9,6
 rimraf@2,1,4 (graceful-fs@1,2,3)
 coffee-script@1,6,3
 minimatch@0,2,12 (sigmund@1,0,0, lru-cache@2,3,0)
 optimist@0,3,5 (wordwrap@0,0,2)
 glob@3,1,21 (inherits@1,0,0, graceful-fs@1,2,3)
 LiveScript@1,0,1 (prelude-ls@1,0,1)
 log4js@0,6,6 (dequeue@1,0,3, semver@1,1,4, async@0,1,15, readable-stream@1,0,2)
 lodash@1,1,1
 http-proxy@0,10,3 (pkginfo@0,2,3, utile@0,1,7)
 istanbul@0,1,22 (abbrev@1,0,4, which@1,0,5, fileset@0,1,5, nopt@2,0,0, wordwrap@0,0,2, async@0,1,22, mkdirp@0,3,5, esprima@0,9,9, escodegen@0,0,24, handlebars@1,0,12)
 socket.io@0,9,16 (base64id@0,1,0, policyfile@0,0,4, redis@0,7,3, socket.io-client@0,9,16)

Ensuite, lorsque j'essaie d'exécuter la commande suivante pour créer un fichier de configuration karma avec cette commande:

karma init karma.config.js

Voici le message qui est retourné:

-bash: karma: commande introuvable

J'ai essayé la même commande avec sudo avant mais j'obtiens le même résultat.

Est-ce que quelqu'un a une idée de ce qui se passe? Toute aide est appréciée.

*Mise à jour! J'ai décidé de vérifier un fichier nommé: builderror.log situer dans: /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws

Voici ce qu'il affiche:

gyp WARN EACCES l'utilisateur "root" n'a pas la permission d'accéder au répertoire de développement "/Users/eperez/.node-gyp/0.10.5"
gyp WARN EACCES tentative de réinstallation en utilisant un répertoire de développement temporaire "/usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/.node-gyp"
gyp http GET http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz

1 votes

Il ne semble pas être dans votre chemin, confirmez avec which karma. J'ai déjà rencontré le cas où npm installait des choses dans un emplacement qui n'est pas dans le chemin par défaut, je pense sur Arch. Je ne me souviens plus où c'était désolé :( ps vous pouvez faire cd /; find|grep karma pour obtenir tous les noms de fichiers sur le système avec karma dans le nom de fichier ou le chemin

0 votes

J'ai exécuté la commande et voici ce que j'ai obtenu. Je ne suis pas sûr de ce que cela signifie cependant : utilisation: find [-H | -L | -P] [-EXdsx] [-f chemin] chemin ... [expression] trouver [-H | -L | -P] [-EXdsx] -f chemin [chemin ...] [expression]

0 votes

D'accord désolé votre programme find se comporte différemment du mien. Quoi qu'il en soit, vous devrez trouver où npm a installé des choses et vous assurer que ce dossier soit ajouté à votre chemin pour vos sessions de terminal. Pour information, sur mon installation de Linux Mint, npm -g place des choses dans /usr/local/bin

250voto

Kirkland Points 1105

@mayankcpdixit a donné la réponse là-haut en réponse à la question originale de l'OP, mais je la mettrai ici de nouveau au cas où quelqu'un la manquerait.

Vous n'avez pas besoin de désinstaller tout, et si je devais ajouter manuellement un nouveau chemin pour chaque package npm que j'essaie d'installer, je me tirerais probablement une balle.

npm install -g karma-cli

Boom. Maintenant vous avez les commandes karma installées. Tout comme Grunt.


Modification : N'oubliez pas de voter pour @mayankcpdixit également, il a commenté directement sur le post original, mais n'a pas réellement "répondu" à la question.

9 votes

N'oubliez pas que -g nécessite des privilèges sudo, donc cela devrait être sudo npm install -g karma-cli ;)

37voto

Martin Cortez Points 1514

Dans votre fichier ~/.bash_profile (ou similaire), modifiez votre PATH pour inclure les binaires installés par npm :

export PATH="$PATH:/usr/local/share/npm/bin"

J'ai rencontré exactement le même problème, et j'ai trouvé cette solution moins chronophage et impactante que de réinstaller complètement node.

MODIFICATION cela a également fonctionné pour d'autres dans bash_profile

export PATH="$PATH:/usr/local/lib/node_modules/karma/bin"

9 votes

J'ai dû utiliser: export PATH="$PATH:/usr/local/lib/node_modules/karma/bin" dans ~/.bash_profile.

1 votes

Ne peut pas décider si je dois m'assurer que Karma est sur mon chemin ou réinstaller complètement Node...+1

0 votes

N'a pas réussi à faire fonctionner cela. Est-ce avec une installation globale ou karma, c'est ça ?

14voto

Lior Points 1151

Il est recommandé d'installer karma avec son Interface en Ligne de Commande (karma-cli) qui se chargera de récupérer le karma approprié. Vous pouvez également installer une version locale différente spécifique à chaque projet sur lequel vous travaillez et karma-cli choisira celle appropriée.

De la page d'installation de karma :

Taper ./node_modules/karma/bin/karma start est pénible donc vous trouverez peut-être utile d'installer karma-cli globalement :

npm install -g karma-cli

Maintenant, vérifiez que karma a bien été installé en tapant :

karma start

Vous pouvez également vérifier que karma a bien été installé en allant dans ce répertoire :

cd /usr/local/lib/node_modules/karma

Bonne chance !

2voto

vusan Points 1789

Ne pas besoin de désinstaller complètement node.js

Juste

sudo rm -rf /usr/local/lib/node_modules/npm/

Ensuite
installer node.js

Ensuite
réinstaller karma

Cela a fonctionné pour moi.

1voto

Tiago Ferreira Points 31

Il suffit d'aller à test.sh :

Trouver : $BASE_DIR/../node_modules/karma/bin/karma start $BASE_DIR/../config/karma.conf.js $*

Remplacer par : /usr/local/bin/karma start $BASE_DIR/../config/karma.conf.js $*

Ou bien : karma start $BASE_DIR/../config/karma.conf.js $*

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