Hver gang du installerer node.JS, den installerer npm Pakkesjef som standard. Av en eller annen grunn kan du imidlertid møte problemet med at Bash ikke anerkjenner NPM som en gyldig kommando.
I denne feilsøkingsguiden vil vi se på mulige trinn du kan ta for å feilsøke feilen. Jeg bruker Ubuntu til demonstrasjonen. Imidlertid vil de viktigste prinsippene gjelde for alle andre Linux -distro.
BASH: NPM: Kommando ikke funnet
Bash er standardskallet på de fleste Linux -distros. Når vi kjører en kommando på terminalen, går den til bash. Kommandoen blir deretter tolket og utført.
Imidlertid, hvis kommandoen leter etter et verktøy som Bash ikke gjenkjenner, vil den vise feilen.
Som utdataene antyder, kan Bash ikke finne kommandoen "npm" relatert til et hvilket som helst bash alias eller verktøy. Vi kan utlede et par mulige scenarier:
Fersk node.JS -installasjon
Vår aller første løsning innebærer å installere node på nytt.JS og alle komponentene fra bunnen av. En ødelagt installasjon eller konfigurasjon kan forårsake et slikt problem i mange tilfeller. Vi fjerner den eksisterende installasjonen, konfigurerer noden.JS dedikert repo, og lag en fersk node.JS -installasjon.
Fjerne eldre versjoner av noden.JS
Hvis du har en gammel versjon av noden.JS installert, så anbefales det sterkt å oppgradere til den nyeste stallen (nåværende eller LTS) utgivelsen. Gammel programvare er ofte full av feil og sårbarheter. En stor del av cyberangrep skjer fordi gammel programvare ikke er oppdatert/lappet.
Først fjerner noden.JS ved å bruke din standardpakkebehandler. For Ubuntu er Apt Package Manager. Kjør følgende kommando for å fjerne node.JS og alle komponentene:
$ sudo apt autoremove -purge nodejs npm nodeKjør deretter følgende kommandoer for å fjerne rester fra systemet.
$ sudo rm -rf/usr/local/bin/npmInstallere den siste noden.JS
Vårt primære mål er å bekrefte at systemet ditt har den siste versjonen av Node.JS installert. Vi har allerede en dyptgående guide til å installere node.JS og NPM på Ubuntu.
Kort sagt, kjør følgende kommandoer for å angi den offisielle noden.JS Repo for Ubuntu. Når du skriver denne artikkelen, den siste nåværende Versjonen er node.JS v17.x, og den siste LTS -versjonen er v16.x. Per anbefaling av noden.JS offisiell nettsted, vi installerer LTS -versjonen:
$ curl -fssl https: // Deb.Nodesource.com/setup_16.x | sudo -e bash -Nå, installer node.JS:
$ sudo apt installer nodejs -yKontroller nå om bash nå gjenkjenner NPM som en riktig kommando.
$ npm hjelpHvis prosessen er vellykket, får du NPM -hjelpesiden. Ellers vil problemet vedvare.
Tilbakestill verdien av banen
Bane er en viktig miljøvariabel som mange deler av systemet er avhengige av. Den forteller skallet (og systemet) hvor du skal se etter visse programmer. Hver gang vi kjører en kommando, søker skallet (bash, i de fleste tilfeller) etter kommandoen på stedene beskrevet av banen. Hvis den ikke er funnet, vil den ikke gjenkjenne kommandoen, selv om verktøyet er installert riktig.
For å lære mer om banevariabelen, sjekk ut denne guiden om hvordan du endrer banen i Linux.
For å se verdien av banevariabelen, kjør følgende kommando:
$ ekko $ baneAlternativt kan du bruke følgende SED -kommando til å skrive ut baneutgangen. Det vil sette alle unike oppføringer i en ny linje.
$ sed 's/:/\ n/g' <<< "$PATH"Er det noen inkonsekvens i banen variabel? Det vil være flere stier som er oppført i banevariabelen i de fleste tilfeller. Prøv å sette banevariabelen til standardtilstanden.
$ Eksportbane = $ (GetConf Path)Etter å ha fikset banevariabelen, sjekk om bash kan finne npm nå.
$ npm hjelpHvis det løste problemet, kan du vurdere å sette banevariabelen manuelt ved å bruke Bashrc -filen. Lær mer om eksportsti i Bashrc. Kort sagt, legg til følgende linjer i Bashrc -filen.
$ Eksportbane = $ (GetConf Path)Her,
Bekreft om oppdateringen var vellykket.
$ ekko $ baneHvis du bruker en bærbar versjon av Node.JS, du må også sørge for at den binære plasseringen også er inkludert i banen variabel. Ellers vil Bash ikke gjenkjenne det binære.
Siste tanker
Denne feilsøkingsguiden demonstrerte noen løsninger for å løse problemet der Bash ikke kan finne npm binær. Merk at disse trinnene er for generell feilsøking. Hvis problemet ditt vedvarer etter å ha fulgt dem, bør du søke eksperthjelp. Det er massive samfunn som Stackexchange som kan hjelpe deg med din situasjon.
Glad databehandling!