Jak zainstalować Node.js bez dostępu sudo, ale z zainstalowanym npm 1.3.10?

14

Mam niewielką wiedzę na temat Ubuntu 14.04.

Muszę zainstalować Node.js. Ubuntu, którego używam, to duży system dla organizacji, więc nie mam sudodostępu, ale stwierdziłem, że zainstalowano npm 1.3.10.

Szukam sekwencji poleceń do zainstalowania Node.js w moim katalogu użytkownika. Pobrałem Node.jsod tutaj na nodejs.org (wersja LTS, 64 bity) ~/Downloads/node-v8.9.1-linux-x64.tar.xz. Co mam teraz zrobić?

użytkownik5280911
źródło
Sprzęt Twojej firmy NIE jest przeznaczony do instalowania rzeczy poza tym, do czego masz uprawnienia. Skontaktuj się z działem IT zamiast publikować losowe rzeczy w Internecie.
3
@MichaelBay Node.js można również zainstalować lokalnie, bez konieczności korzystania z sudo i bez konieczności kontaktowania się z działem IT w celu uzyskania autoryzacji do zainstalowania Node.js na całym świecie.
karel

Odpowiedzi:

17

Aby zainstalować Node.js i npm lokalnie, bez konieczności używania sudo, otwórz terminal i wpisz:

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install 
wget -c https://www.npmjs.org/install.sh | sh  

Curl pakiet nie jest zainstalowany w Ubuntu domyślnie. Jeśli nie masz zainstalowanego curl w systemie, zamień wszystkie wystąpienia curlpliku install.sh na wget -ci zapisz zmiany w pliku install.sh przed uruchomieniem.

Spowoduje to zainstalowanie node-v9.2.0, który jest późniejszą wersją Node.js niż plik, który już pobrałeś.

Karel
źródło
Dziękuję bardzo, Karel. Nie tylko wiem, jak zainstalować Node.js, ale także nauczyłem się ogólnej metody instalowania oprogramowania w moim folderze użytkownika ze źródła. Tylko dwie rzeczy do wspomnienia: 1) najpierw mam już ~ / .bashrc, więc ręcznie dodałem ścieżkę do geditora i ponownie się zalogowałem. 2) Nie rozumiem szóstego polecenia, więc uruchamiam je osobno: najpierw wget ... drugi tar -xzf ... a na koniec cd do rozpakowanego folderu. Nie rozumiem też ostatniego polecenia. Czy to znaczy, że pobieram install.sh z tego adresu URL i go uruchamiam?
user5280911,
To, co zrobiłeś z istniejącym ~ / .bashrc, jest OK. Jeśli chodzi o ostatnie polecenie, pobiera plik install.sh z adresu URL i uruchamia go, ponadto plik install.sh nie musi nawet mieć uprawnień do wykonywania, ponieważ uruchamiasz to polecenie jako zwykły użytkownik, a nie w sudo .
karel,
1
Mam to. Dziękuję Ci. Przepraszam, że nie mogę głosować za odpowiedzią, ponieważ mój punkt reputacji nie wystarcza, ale zrobię to, gdy będę mógł. Jeszcze raz dziękuję za pomoc.
user5280911,
Czy istnieje sposób na osiągnięcie tego, gdy nie masz dostępu do kompilatora C - być może przy użyciu plików binarnych?
Simon East
Użytkownik GitHub isaacs wynalazca npm napisał kilka skryptów dla technik instalowania węzła i npm bez konieczności używania sudo: node-and-npm-in-30-seconds.sh . Uwaga: npm> = 0.3 jest bezpieczniejszy podczas korzystania z sudo. Nie rób tego, jeśli nie wiesz, co to robi!
Karel
2

Trenuję w ten sposób - w 2 krokach.

Krok 1: Pobierz i wyodrębnij pliki binarne nodejs

# create a directory where you want to install node js
mkdir ~/nodejs-latest

# download and extract nodejs binaries into the created directory
cd ~/nodejs-latest
wget -c http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1


Krok 2: Ustaw PATH i źródło

# append the following lines to the ~/.bashrc file
export NODE_HOME=~/nodejs-latest
export PATH=$PATH:$NODE_HOME/bin

# refresh environment variables
source ~/.bashrc

Następnie możesz zweryfikować instalację nodejs za pomocą node --versioni npm --version.

Ramvignesh
źródło
Myślę, że twoje polecenie pobiera pliki źródłowe węzła (nieskompilowane). Być może zamierzasz pobrać pliki binarne?
Simon East
-1

W tym celu lubię korzystać z grup ubuntu. To całkiem proste.

  1. Najpierw zainstaluj nodejs i npm za pomocą apt-get

    sudo apt-get update && sudo apt-get install nodejs npm

  2. Dowiedz się, kto jest zalogowany, tj. Nazwa użytkownika, uruchom następującą komendę, aby zobaczyć ją w terminalu

    whoami

  3. Możesz zobaczyć listę grup, które zostały ci przypisane za pomocą bardzo prostej komendy, zwykle pierwszą grupą jest sama nazwa użytkownika

    groups

  4. Uruchom następujące, aby umożliwić dostęp zalogowanemu użytkownikowi

    sudo chmod 777 -R /usr/local && sudo chgrp $(whoami) -R /usr/local

  5. Zaktualizuj npm i nodejs

    npm install -g npm

Masz wszystko, użytkownik może uruchamiać polecenia npm bez sudo

Możesz także odnieść się do błędu rzucania npm bez sudo .

Gitesh Dalal
źródło
1
Modyfikacja standardowych uprawnień systemu plików powinna być ostatnią czynnością.
Carlos Dagorret