Beim Kompilieren oder Ausführen einer App stoße ich häufig auf pfadbezogene Probleme. Ich habe zwei Versionen vonKnotenin meinem System, einer ist aus dem offiziellen Repo, der andere manuell aus dem Quellcode installiert. Heute wollte ich kompilierenKlammern, wenn ich npm install
es ausführe, werde ich aufgefordert, eine neuere Version wie 1.4.20 zu verwenden. Die Standardversion davon ist in, /usr/bin/npm
was nicht funktioniert hat. Die manuell installierte Version ist in/usr/local/bin/npm
Gibt es eine Möglichkeit, dies mit oder einer anderen Methode /usr/local/bin/npm
als Standardpfad festzulegen ?update-alternatives
Sie können beispielsweise den Standardtexteditor festlegen mit
sudo update-alternatives --config editor
Antwort1
Ich habe herausgefunden, wie das geht. Zuerst habe ich den Standardpfad überprüft, npm
der eine ältere Version (1.3.10) ist. Dabei /usr/bin/npm
ist mir aufgefallen, dass es sich um einen symbolischen Link zu handelt. /usr/share/npm/bin/npm-cli.js
Ich habe ihn entfernt.
sudo unlink /usr/bin/npm
Dann habe ich folgenden Befehl versucht
sudo update-alternatives --install /usr/bin/npm npm /usr/local/bin/npm 10
sudo update-alternatives --install /usr/bin/npm npm /usr/share/npm/bin/npm-cli.js 20
Jetzt kann ich ganz einfach zwischen ihnen wechseln, indem ich
sudo update-alternatives --config npm
Es funktioniert gut
Antwort2
Da Sie erwähnt habenKnoten, möchte ich darauf hinweisen, dass dies eine gute Gelegenheit ist, dieN Installationsmanager für NodeJS. Wenn ich einen Paketmanager auf „höherer Ebene“ wie diesen zur Verfügung habe, verwende ich ihn normalerweiseUpdate-Alternativen. Es ist meiner Meinung nach im Allgemeinen weniger kompliziert, als zu versuchen, wichtige Dateien selbst aufzuspüren. Trotzdem denke ich,Update-Alternativenwird immer noch funktionieren.