2013-05-15 14 views
66

Sul mio server Debian ho un utente chiamato "deployer" che non ha accesso sudo e ha installato RVM.Come installare i requisiti di sistema RVM senza dare accesso sudo per l'utente RVM

Durante l'installazione di Ruby con "deployer", come 1.9.3, si innesca un compito di installare le dipendenze

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

che non riesce e si ferma l'installazione perché "deployment" non può sudo.

Non voglio aggiungere "deployer" all'elenco di sudoers e non voglio installare RVM per qualche altro utente solo per un uso occasionale per l'installazione delle dipendenze.

Qual è il modo corretto per installare tali dipendenze? O come li elenco per installare manualmente?

+0

Rvm potrebbe essere il tentativo di installare le dipendenze di compilazione per compilare un fonte di rilascio di rubino. Evita la versione "più recente" e specifica una versione esplicita di ruby. –

+2

Grazie per aver chiesto questa domanda. –

risposta

144

Questa è davvero una nuova funzionalità di RVM denominata autolibs, che installa automaticamente le dipendenze.

Se è già stato installato RVM, e ti sta chiedendo per il vostro sudo password, è possibile disattivare autolibs:

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

In caso contrario, è possibile installare RVM senza autolibs con questo comando:

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

Capisco la motivazione, ma la trovo piuttosto fastidiosa. Non voglio mettere la mia password sudo in RVM, né per quella questione Bundle! Per favore, comunità, smetti di farlo.

+6

Grazie, ho perso un sacco di tempo con questo. Cosa stavano pensando? –

+3

Per curiosità, perché "arricciatura" è preceduto da una barra? È un errore di battitura? – Gili

+11

@Gili Il backslash ignorerà un alias esistente, che potrebbe avere altri flag indesiderati. – kwarrick

-1

Il problema è stato introdotto da qualche parte nelle ultime versioni di RVM. Non so esattamente quando, ma sicuramente negli ultimi 3-4 mesi.

Prova questo:

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

Non so esattamente quando sul percorso tra 1.18.8 e 1.20.12 quel problema ma ho introdotto, ma per me l'installazione funziona con RVM v1.18.8 e non riesce con v1.20.12.

+0

Il downgrade non è certamente richiesto. – drumfire

6

accepted answer non riesce a installare Ruby in .rvm/bin/ruby. Lo script della shell termina in .rvm/wrappers/ruby-2.0.0-p247/ruby, il che è un problema se lo script di build dipende da questa posizione e il numero di versione cambia nel tempo.

Ecco una soluzione più facile che ha funzionato per me:

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

.rvm/bin/ruby viene creato come previsto.

Fonte: http://blog.sunild.com/2013/07/install-ruby-with-rvm-on-mac-os-108.html

29

preferisco questo

$ 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. 

allora posso nuovo login con root ed eseguire

# 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

Concordato, questa è la soluzione migliore – Thomas

+0

Questa dovrebbe essere la risposta accettata. Altre informazioni utili. – mshiltonj

+0

Ottima soluzione. Grazie! – Xornand