Problem med kommandon som inte finns

Permalänk
Medlem

Problem med kommandon som inte finns

Hej ska försöka förklara mitt problem så tydligt så att man förstår. Jag har min hallon paj med Raspbian installerat. Installerade node.js och installerade då från source. Nu fungerade inte det utan det stod Illegal instruction om man t.ex körde node app.js. Jag tog då bort det med kommandon sudo make uninstall. Men när man kör kommandot node eller npm står det

-bash: /usr/local/bin/node: No such file or directory

respektive

-bash: /usr/local/bin/npm: No such file or directory

så någon stans finns det rester från min gamla node installation. Det borde stå "-bash: exempel: command not found". Och när jag då försöker fixa så det fungerar med en annan tutorial (http://oskarhane.com/raspberry-pi-install-node-js-and-npm/) så kommer de två texterna att den inte hittar något. Tacksam för svar!. Fråga om det är något som behöver förtydligas.

Permalänk
Hedersmedlem

Vad ger

which -a node npm

samt

alias

?

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

which -a node npm ger ingenting

alias ger:
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias ls='ls --color=auto'

Permalänk
Hedersmedlem
Skrivet av Virre131:

which -a node npm ger ingenting

Tolkar jag fel när jag trodde att du menade att ifall du enbart körde `node` eller `npm` (utan sökväg) i en terminal så sa den `-bash: /usr/local/bin/node: No such file or directory`? Ifall binärerna varken finns i PATH (vilket `which` kollar) eller som alias i den nuvarande sessionen så låter det märkligt.

Att den säger "No such file or directory" är annars något som inte verkar vara helt ovanligt på RPi, och uppstår om man kompilerat saker mot fel arkitektur, vilket då kanske är det som hänt av någon anledning. Det är ett lite lurigt felmeddelande som snarare ska tolkas som att `/usr/local/bin/node` klagar på att den önskar att hitta en viss fil (biblioteksfil, troligen) men att den inte finns; det måste inte betyda att skalet klagar på att `/usr/local/bin/node` inte finns.

Om jag tolkade fel och `/usr/local/bin/node` och `/usr/local/bin/npm` finns i systemet, så se vad

ldd /usr/local/bin/node /usr/local/bin/npm

ger. Ifall det är några dynamiskt länkade bibliotek som inte hittas så bör detta visa det.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Jo du har tolkat det rätt. Jag tog fel arkitektur. Så jag försökte rensa resterna. Men något blev tydligen kvar eftersom den letar efter filer som inte finns. Kan man rensa sin PATH eller något så den inte hänvisar till de gamla filerna så jag kan installera rätt arkitektur.

Permalänk
Hedersmedlem
Skrivet av Virre131:

Jo du har tolkat det rätt. Jag tog fel arkitektur. Så jag försökte rensa resterna. Men något blev tydligen kvar eftersom den letar efter filer som inte finns. Kan man rensa sin PATH eller något så den inte hänvisar till de gamla filerna så jag kan installera rätt arkitektur.

Jag fattar fortfarande inte hur skalet kan hitta `node` eller `npm` samtidigt som `which` inte ger något svar. Enligt den andra guiden du länkade så ska ju `node` och `npm` i stället ligga i `/opt/node/bin`, så varför `/usr/local/bin/node` och `/usr/local/bin/npm` överhuvudtaget nämns förstår jag inte. Det är nog någon detalj jag missar gällande detta.

Försök att klistra in direkt output från terminalen när du försöker göra det du vill så kanske det blir tydligare.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Vad får du för output från?

echo $PATH ls -al /usr/local/bin/node ls -al /usr/local/bin/npm ls -al /opt/node/bin

Misstänker att installationen från source kan ha lämnat skit kvar i systemet, /usr/local/bin/node skulle kunna vara en länk till någonting som inte finns kvar eller något annat skumt. Du skulle kunna testa att ändra till PATH=/opt/node/bin:$PATH i din .bash_profile så borde den "nya" installationen hittas först.

Det här är varför pakethanterare är så bra

Permalänk
Medlem
Skrivet av Sir. Haxalot:

Vad får du för output från?

echo $PATH ls -al /usr/local/bin/node ls -al /usr/local/bin/npm ls -al /opt/node/bin

Misstänker att installationen från source kan ha lämnat skit kvar i systemet, /usr/local/bin/node skulle kunna vara en länk till någonting som inte finns kvar eller något annat skumt. Du skulle kunna testa att ändra till PATH=/opt/node/bin:$PATH i din .bash_profile så borde den "nya" installationen hittas först.

Det här är varför pakethanterare är så bra

1

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

2

ls: cannot access /usr/local/bin/node: No such file or directory

3

ls: cannot access /usr/local/bin/npm: No such file or directory

4

total 9636 drwxr-xr-x 2 root root 4096 Jun 6 16:35 . drwxr-xr-x 5 root root 4096 Jun 6 16:35 .. -rwxr-xr-x 1 root root 9855443 Jun 6 16:35 node lrwxrwxrwx 1 root root 38 Jun 6 16:35 npm -> ../lib/node_modules/npm/bin/npm-cli.js

Efter att ha gjort dina tester så försvinner -bash: /usr/local/bin/node: No such file or directory och -bash: /usr/local/bin/npm: No such file or directory när man skriver node -v samt npm -v

Permalänk
Medlem
Skrivet av phz:

Jag fattar fortfarande inte hur skalet kan hitta `node` eller `npm` samtidigt som `which` inte ger något svar. Enligt den andra guiden du länkade så ska ju `node` och `npm` i stället ligga i `/opt/node/bin`, så varför `/usr/local/bin/node` och `/usr/local/bin/npm` överhuvudtaget nämns förstår jag inte. Det är nog någon detalj jag missar gällande detta.

Försök att klistra in direkt output från terminalen när du försöker göra det du vill så kanske det blir tydligare.

Efter att ha gjort Sir. Haxalot's tester försvinner alla problem och om jag testar så kommer inte det upp fel koder längre utan:

-bash: node: command not found

Permalänk
Medlem

Startade om min hallon paj och nu värkar det fungera men om jag testar med "node app.js" så fungerar det inte utan får medelandet "Illegal instruction" någon som vet varför det står som det gör?

Permalänk
Hedersmedlem
Skrivet av Virre131:

Efter att ha gjort Sir. Haxalot's tester försvinner alla problem och om jag testar så kommer inte det upp fel koder längre utan:

-bash: node: command not found

Det låter rimligare. Det var nog bara något skräp som låg kvar i just det skalet du satt i tidigare.

Gällande "Illegal instruction" så låter det som att det är tillbaka på problem med arkitekturer. Enligt denna guide för RPi+NodeJS så verkar det inte vara helt ovanligt:

Citat:

To make sure it ran correctly, run `node -v`. It should return the current version.

Running `npm -v` or `npm --version` still gave me the known `Illegal instruction` error. However, installing modules with `npm install` works.

Exakt vad det beror på är nog alltför NodeJS-specifikt för att jag ska kunna ge några bra svar; du får nog hoppas på någon som har pillat med just NodeJS på RPi för detta.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Det låter rimligare. Det var nog bara något skräp som låg kvar i just det skalet du satt i tidigare.

Gällande "Illegal instruction" så låter det som att det är tillbaka på problem med arkitekturer. Enligt denna guide för RPi+NodeJS så verkar det inte vara helt ovanligt:

Exakt vad det beror på är nog alltför NodeJS-specifikt för att jag ska kunna ge några bra svar; du får nog hoppas på någon som har pillat med just NodeJS på RPi för detta.

Ok. Men tack för för hjälpen!