Gem Instaluje się nie uruchamia po aktualizacji ogólnosystemowej aktualizacji Arch Linux

2

Podczas próby wykonania sass --watch scss:cssw folderze docelowym otrzymuję wiadomośćcommand not found

Wiem, że zainstalowałem sass. gem listnie pokazuje, że jest już zainstalowany.

Uruchomiam sudo gem install sassi otrzymuję następujący komunikat:

WARNING: You don't have /root/.gem/ruby/2.3.0/bin in your PATH
         gem executables will not run.

Idę do mojego .bashrcpliku. mamPATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

Na /etc/bash.bashrcwszelki wypadek też to założyłem . Nic się nie zmienia.

Idę do / etc / profile i wstawiam:

#Setting the GEM_PATH and GEM_HOME variables may not be necessary, check 'gem env' output to verify whether both variables already exist 
 GEM_HOME=$(ls -t -U | ruby -e 'puts Gem.user_dir')
 GEM_PATH=$GEM_HOME
 export PATH=$PATH:$GEM_HOME/bin

Przeładowuję profil za pomocą . /etc/profile

Próbuję ponownie zainstalować sass za pomocą sudo gem install sass

Nadal ten sam komunikat o błędzie. gem listwciąż się nie pokazujesass

Co teraz??

Andrzej
źródło
Czy dodałeś katalog PATH do bashrc roota lub do katalogu użytkownika nieuprzywilejowanego?
MariusMatutiae
Rzeczywiście nie miałem .bashrc wewnątrz / root / skopiowałem plik z / home / USER i ponowiłem instalację. Ten sam komunikat o błędzie.
Andrew
przepraszam, ale nie rozumiem, czy próbujesz wykonać polecenie jako toor czy jako nieuprzywilejowany użytkownik.
MariusMatutiae
Wprowadziłem ścieżkę katalogu ręcznie do katalogu /root/.bashrc i teraz działa. Chociaż to prawdopodobnie nie jest idealne rozwiązanie. Jak mogę edytować ruby ​​Gem.user_dir?
Andrew
Używam klejnotu jako superużytkownik
Andrew

Odpowiedzi:

3

Domyślnie w Arch Linux, podczas działania gem, klejnoty są instalowane na użytkownika (do ~/.gem/ruby/), a nie do całego systemu (do /usr/lib/ruby/gems/).

Jest to uważane za najlepszy sposób zarządzania klejnotami w Arch, ponieważ w przeciwnym razie mogą zakłócać działanie klejnotów zainstalowanych przez Pacmana.

Klejnoty można instalować w całym systemie, uruchamiając gempolecenie jako root i dołączając --no-user-installflagę. Tę flagę można ustawić domyślnie, zastępując --user-installją parametrem --no-user-installin /etc/gemrc(dla całego systemu) lub ~/.gemrc(dla użytkownika, zastępuje dla całego systemu).

Wpisz swój terminal

sudo gem install sass --no-user-install

Zobacz arch wiki na temat klejnotów rubinowych. Przeczytaj Instalowanie klejnotów dla użytkownika lub całego systemu

Romano
źródło
3

Próbujesz zainstalować klej za pomocą sudo, ale system zna ścieżkę dla twojego użytkownika, ale nie dla użytkownika sudo.

Aby rozwiązać ten problem, dodaj następujący wiersz do pliku ~/.bashrclub .~/zshrcpliku:

PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"

Użyj sourcepolecenia, aby zaktualizować plik profilu lub ponownie otworzyć terminal.

source ~/.zshrc

W ten sposób możesz zainstalować swoje klejnoty bez sudo, jak w tym przykładzie:

gem install rspec 
koderada
źródło