2013-05-15 13 views
66

Na moim serwerze Debiana mam użytkownika o nazwie "deployer", który nie ma dostępu do sudo i ma zainstalowany RVM.Jak zainstalować wymagania systemowe RVM bez uzyskiwania dostępu sudo dla użytkownika RVM

Podczas instalowania Ruby przy użyciu "Deployer", jak 1.9.3, to uruchamia zadanie zainstalować zależności

"Installing requirements for debian, might require sudo password." 

którym nie powiedzie się i zatrzymuje instalację, ponieważ "Deployer" nie może sudo.

Nie chcę dodawać "wdrażającego" do listy sudoers i nie chcę instalować RVM dla innego użytkownika tylko jednorazowo do instalowania zależności.

Jaki jest poprawny sposób zainstalowania tych zależności? Lub jak je wyświetlić, aby zainstalować ręcznie?

+0

Rvm może być próbą zainstalowania kompilacji zależności w celu kompilacji źródło wydania rubinu. Unikaj "najnowszej" wersji i określ jawną wersję ruby. –

+2

Dzięki za zadanie tego pytania. –

Odpowiedz

144

Jest to rzeczywiście nowa funkcja RVM o nazwie autolibs, która automatycznie instaluje zależności.

Jeśli masz już zainstalowany RVM, i prosi o hasło sudo, można wyłączyć autolibs:

$ rvm autolibs disable 
$ rvm requirements # manually install these 
$ rvm install ruby 

W przeciwnym razie, można zainstalować RVM bez autolibs poleceniem:

$ \curl -L https://get.rvm.io | bash -s -- --autolibs=read-fail 

Rozumiem motywację, ale jest to dość irytujące. Nie chcę umieszczać mojego hasła sudo w RVM, ani w tym przypadku Bundle! Proszę społeczność, przestań to robić.

+6

Dziękuję, zmarnowałem z tym dużo czasu. Co oni sobie myśleli? –

+3

Z ciekawości, dlaczego 'curl' jest poprzedzony ukośnikiem? Czy to literówka? – Gili

+11

@Gili Ukośnik odwrotny pominie istniejący alias, który może zawierać dodatkowe niechciane flagi. – kwarrick

-1

Problem został wprowadzony gdzieś w najnowszych wersjach RVM. Nie wiem dokładnie kiedy, ale zdecydowanie w ciągu ostatnich 3-4 miesięcy.

Spróbuj tego:

rvm get 1.18.8 
rvm install <whichever-version-you-want> 

Nie wiem dokładnie, kiedy na ścieżce między 1.18.8 i 1.20.12 problem ten został wprowadzony, ale dla mnie instalacja pracuje z RVM v1.18.8 i nie z v1.20.12.

+0

Obniżenie klasyfikacji z pewnością nie jest wymagane. – drumfire

6

Urządzenie accepted answer nie instaluje Rubiego w .rvm/bin/ruby. Skrypt powłoki kończy się na .rvm/wrappers/ruby-2.0.0-p247/ruby, co jest uciążliwe, jeśli skrypt budowy zależy od tej lokalizacji, a numer wersji zmienia się z czasem.

Oto prostsze rozwiązanie, że pracował dla mnie:

\curl -L https://get.rvm.io | bash -s -- --ignore-dotfiles --autolibs=0 --ruby 

.rvm/bin/ruby tworzony jest zgodnie z oczekiwaniami.

Źródło: http://blog.sunild.com/2013/07/install-ruby-with-rvm-on-mac-os-108.html

29

Wolę ten

$ rvm autolibs fail 
$ rvm install ruby 
Searching for binary rubies, this might take some time. 
Found remote file https://rubies.travis-ci.org/ubuntu/12.04/x86_64/ruby-2.1.1.tar.bz2 
Checking requirements for ubuntu. 
Missing required packages: gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev 
RVM autolibs is now configured with mode '2' => 'check and stop if missing', 
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]` 
or visit https://rvm.io/rvm/autolibs for more information. 
Requirements installation failed with status: 1. 

wtedy mogę przelogować z korzenia i uruchomić

# apt-get install gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev 
+0

Zgadzam się, to jest ładniejsze rozwiązanie. – Thomas

+0

To powinna być zaakceptowana odpowiedź. Więcej przydatnych informacji. – mshiltonj

+0

Świetne rozwiązanie. Dzięki! – Xornand