Perché è così difficile configurare Ruby on Rails su Ubuntu?


13

Ho trascorso alcune ore questa mattina cercando di installare Rails su una nuova istanza di Ubuntu e ho notato che il processo è incredibilmente più complicato rispetto a Windows. Su Windows vado su rubyinstaller.org, eseguo il file eseguibile (ero particolarmente interessato a 1.9.2-p180) e quindi aggiusto il percorso di sistema di conseguenza. Rails inoltre non richiede passaggi aggiuntivi, posso clonare un repository git e iniziare a girare.

Su Ubuntu ho dovuto installare RVM (cosa che avrei potuto fare anche per Windows), installare i prereq elencati, avere apt-get fallito perché un mucchio di quei pacchetti non era più disponibile. Alla fine ho corso rvm installsolo per scoprire che make non avrebbe funzionato, quindi ho dovuto commentare manualmente un sacco di dipendenze su openssl da uno dei file .c e ricostruirlo, quindi finalmente installato. Rails era ancora ben lungi dall'essere finito, quindi ho dovuto installare un altro gruppo di prerequisiti, modificare alcuni file extra nel sorgente ruby ​​ed eseguirlo, e poi ho potuto finalmente rails consoleiniziare.

È abbastanza normale? Dovrei praticamente aspettarmi che tutto impieghi un paio d'ore extra su Ubuntu se svilupperò applicazioni Rails? Ho dovuto consultare almeno 3-4 guide per 11.04 e almeno 5 diversi post di overflow dello stack per far funzionare la cosa, mi sembra un'esperienza utente molto traumatica.


1
Quale guida dove stai seguendo?
Jorge Castro,

È sempre una seccatura, ma non è poi così male: usa RVM. Le rotaie IMHO dovrebbero essere rimosse da apt perché causa solo dolore di versioning. (O ha il potenziale di farlo.)
Giovedì

Risposte:


4

Per quanto riguarda il motivo per cui la tua esperienza è stata difficile, non sono sicuro che si possa rispondere senza una maggiore conoscenza di ciò che hai fatto esattamente. Per quanto riguarda la tua domanda di "è abbastanza normale?" Non sono sicuro che possa essere data una risposta definitiva, ma posso trasmettere la mia esperienza nella speranza che sia utile!

Sto sviluppando su Rails con Ubuntu da oltre due anni e posso dire che non ho mai avuto a che fare con pacchetti rotti o toccare / ricostruire il codice in nessuno dei pacchetti richiesti. Ho reinstallato completamente con ogni versione e la mia esperienza è stata che è più semplice configurare il mio ambiente Rails con ogni versione (probabilmente a causa della crescente esperienza). In generale, dopo un'installazione pulita di Ubuntu, direi che mi ci vuole meno di un'ora (a volte molto meno) per portare il mio ambiente sul palco dove era prima dell'installazione pulita.

Un paio di giorni fa ho seguito il tutorial collegato per reimpostare completamente il mio ambiente di sviluppo Rails l'11.10. In precedenza utilizzavo i pacchetti di Ruby di Gestione pacchetti, che funzionavano bene fino a quando non dovevo eseguire più versioni di Ruby. Si noti che fare affidamento sui pacchetti del gestore pacchetti per lo sviluppo di Ruby non è generalmente considerato il modo migliore per sviluppare Ruby su Ubuntu (vedere l'articolo collegato per i dettagli), ma ha sempre funzionato bene per me in passato (quando è necessaria solo una versione di Rubino, Rotaie e Gemme).

Penso che una cosa che differenzia Linux da alcuni altri sistemi operativi sia la capacità di fare qualcosa in molti modi diversi, mentre in alcuni altri sistemi operativi potrebbe essere possibile solo in un modo particolare. Questo vale per la configurazione del tuo ambiente di sviluppo (ci sono diversi modi per farlo) ed è facile vedere questo che porta alla confusione e alla necessità di consultare diverse guide. Dalla mia esperienza limitata, l'uso dello script di installazione bash di RVM nell'articolo collegato è stato il più semplice (vale a dire, considerando i principali vantaggi di RVM, se RVM non è di alcun beneficio per te, potrebbero esserci modi più semplici come il gestore dei pacchetti) .

Se hai più familiarità con lo sviluppo in Windows e stai configurando Ubuntu per lo sviluppo per la prima volta, penso che sia ragionevole aspettarsi che impiegherà più tempo semplicemente perché molte cose impiegano più tempo la prima volta che impariamo a farle. Se finisce per essere "traumatico", spero solo che tu possa trovare l'esperienza e la conoscenza che hai guadagnato prezioso :)

http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/


Grazie per quella guida, mi riferirò ad essa la prossima volta. Devo sottolineare che è un po 'sciocco, perché prima ti avverte di non usare mai apt-get, e quindi procede a scaricare una dozzina di dipendenze ruby ​​da esso: | In ogni caso, è possibile che parte del mio dolore sia stato causato dal fatto di dover utilizzare specificamente 1.9.2-p180, le versioni future presentavano correzioni specifiche per Ubuntu che dovevano essere indirizzate manualmente per quella versione. Ottima risposta nel complesso, mi dà più fiducia riguardo al fatto di attenermi al sistema operativo per i lavori futuri.
Alexandr Kurilin,

Ecco il problema che stavo riscontrando, tra molti altri: digitaldisorder.posterous.com/ruby-rvm-and-debian-sid-problems
Alexandr Kurilin,

Se ti è piaciuta questa risposta, fai clic su "Questa risposta è utile" oltre a ringraziare chi ha risposto. Questa è anche una dimostrazione di apprezzamento per coloro che si sono presi la briga di ricercare e rispondere alla domanda. :)
João Santana,

1

Cordiali saluti: Ho appena completato un'installazione RoR completa su Ubuntu 12.04 in cinque minuti.

  • sudo apt-get install git git-svn postgresql-9.1 libpq-dev ruby1.9.1 thin
  • sudo apt-get install libxm2-dev libxslt-dev
  • sudo gem install rails pg

libxm2-deve libxslt-devsono solo per Nokogiri (se necessario) e postgresql-9.1, libpq-deve pgsono solo per il database PostgresSQL (se necessario).

Dopo di che sono stato in grado di correre bundle installnelle mie directory del progetto Rails per ottenere tutte le gemme richieste attive e tutto ha funzionato. Non rvmce n'è bisogno e non ho mai incontrato pacchetti rotti. OK, quindi non ero interessato a una specifica build di Ruby, ma allora perché lo eri?

Forse hai incontrato uno dei (purtroppo) molti siti Web "Ruby-manual-hack-installation-du-jour" che ti dicono di eliminare tutti i sistemi di gestione dei pacchetti e compilare tutto da solo.

In contrasto con la recensione precedente Penso che una differenza tra Windows e Linux per quanto riguarda Ruby è che in Windows non v'è alcun modo "ufficiale" di installare il software (ma per molti versi non ufficiali, gli installatori, siti web, ecc), ma in Linux c'è un modo "ufficiale" (pacchetto del distributore) e che di solito funziona meglio ma limita in qualche modo le tue scelte.

E poiché il software Linux tende a condividere molto di più (codice, funzionalità, ecc.) Come software Windows e la distinzione tra "sistema operativo" e "applicazioni" è molto più sfocata rispetto a Windows, se si inizia a compilare e installare manualmente il software in Linux prevede di occuparsi molto più di dipendenze, librerie e così via rispetto a Windows.

Il modo migliore è sempre di ottenere i pacchetti dei distributori (la mia esperienza).


il problema con questo approccio, 'sudo gem install rails pg' è che non tutte le gemme sono disponibili in questo modo. Qual è l'appello per RVM (che quindi ha i suoi svantaggi).
Giovedì

Thufir, quali gemme mancano specificamente? E perché questo è un problema (dal momento che puoi sempre aggiungere più fonti gem, usando gem o bundler)?
Jens,

correggimi se sbaglio, ma gem è un gestore di pacchetti simile a apt-get. Quello che stai suggerendo è di usare yum insieme a apt-get, per così dire. Mi sembra solo il caos, anche se nulla va storto. (cosa succede se c'è un conflitto di versioni tra ciò che ha apt-get e quale gemma ha?) Ci sono molte, molte gemme che sono disponibili tramite gemma che non sono in apt-get.
Thufir,

Questo è il motivo per cui traccio una linea a "binari". Uso apt-get per installare tutto compreso Ruby, quindi uso gem per installare Bundler e bundler per installare la versione Rails richiesta e tutte le gemme richieste per una specifica app Rails in base al suo Gemfile. Per iniziare, di solito installo l'attuale versione di Rails anche tramite 'gem install' a livello di sistema (questo non fa male ma non è necessario). Sì, questo ti dà solo una versione di Ruby con cui lavorare ma finora non è stato un problema.
Jens,

1
Thufir, leggi di nuovo il mio post. Non sto usando apt per le gemme nelle app di rotaie. Uso Bundler, con una gemma separata per ogni app.
Jens,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.