Por que é tão difícil configurar o Ruby on Rails no Ubuntu?

13

Passei algumas horas esta manhã tentando configurar o Rails em uma nova instância do Ubuntu e notei que o processo é incrivelmente mais complicado do que no Windows. No Windows, vou para o rubyinstaller.org, execute o executável (estava interessado especificamente em 1.9.2-p180) e, em seguida, ajuste o caminho do sistema de acordo. O Rails também não requer etapas adicionais, posso clonar um repositório git e começar a dar partida.

No Ubuntu, eu tive que instalar o RVM (o que eu também poderia ter feito no Windows), instalar os pré-requisitos listados, ter o apt-get falhar, porque muitos desses pacotes não estavam mais disponíveis. Finalmente, finalmente corri rvm installapenas para descobrir que o make não estava funcionando, então tive que comentar manualmente várias dependências no openssl de um dos arquivos .c, reconstruí-lo e finalmente instalá-lo. O Rails ainda estava longe de terminar, então eu tive que instalar outro pré-requisito, editar algum arquivo extra no código-fonte ruby ​​e executá-lo, e então finalmente consegui rails consolecomeçar.

Isso é normal? Devo esperar que tudo leve algumas horas extras no ubuntu se eu estiver desenvolvendo aplicativos Rails? Eu tive que consultar pelo menos 3-4 guias para 11.04 e pelo menos 5 postagens de estouro de pilha diferentes para executar a coisa, parece uma experiência do usuário muito traumática para mim.

Alexandr Kurilin
fonte
1
Qual guia você está seguindo?
Jorge Castro
É sempre um aborrecimento, mas não é tão ruim - use o RVM. Os trilhos do IMHO devem ser removidos do apt porque apenas causam dor de versão. (Ou tem potencial para.)
Thufir
Por comparação, instalação do Meteor.js é fácil .
Dan Dascalescu

Respostas:

4

Quanto ao motivo da sua experiência ter sido difícil, não tenho certeza de que possa ser respondida sem mais conhecimento do que exatamente você fez. Em relação à sua pergunta "isso é bastante normal?" Não tenho certeza de que possa ser respondida definitivamente, mas posso retransmitir minha experiência na esperança de que seja útil!

Estou desenvolvendo o Rails com o Ubuntu há mais de dois anos e posso dizer que nunca tive que lidar com pacotes quebrados ou tocar / reconstruir o código em qualquer um dos pacotes necessários. Eu reinstalei completamente a cada versão e minha experiência foi que é mais fácil configurar meu ambiente Rails a cada versão (provavelmente devido à experiência crescente). Em geral, após uma instalação limpa do Ubuntu, eu diria que levo menos de uma hora (às vezes muito menos) para colocar meu ambiente no estágio em que estava antes da instalação limpa.

Alguns dias atrás, segui o tutorial vinculado para reconfigurar completamente meu ambiente de desenvolvimento Rails na 11.10. Anteriormente, eu estava usando pacotes Ruby do gerenciador de pacotes, que funcionaram bem até que eu precisei executar várias versões do Ruby. Observe que confiar nos pacotes do gerenciador de pacotes para o desenvolvimento do Ruby geralmente não é a melhor maneira de desenvolver o Ruby no Ubuntu (veja o artigo no link para detalhes), mas sempre funcionou bem para mim no passado (quando você só precisa de uma versão do Ruby, Rails e Gemas).

Eu acho que uma coisa que diferencia o Linux de outros sistemas operacionais é a capacidade de fazer algo de várias maneiras diferentes, enquanto em outros sistemas operacionais isso só pode ser possível de uma maneira específica. Isso é verdade na configuração do seu ambiente de desenvolvimento (há várias maneiras de fazê-lo) e é fácil ver isso levando à confusão e à necessidade de consultar guias diferentes. Pela minha experiência limitada, o uso do script de instalação do RVM bash no artigo vinculado foi o mais fácil (ou seja, considerando os principais benefícios do RVM, se o RVM não for benéfico para você, pode haver maneiras mais fáceis, como o gerenciador de pacotes) .

Se você está mais familiarizado com o desenvolvimento no Windows e está configurando o Ubuntu para desenvolvimento pela primeira vez, acho razoável esperar que demore mais, simplesmente porque muitas coisas demoram mais na primeira vez que aprendemos a fazê-las. Se acabar sendo "traumático", espero que você possa encontrar a experiência e o conhecimento que ganhou valioso :)

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

Sheldon
fonte
Obrigado por esse guia, vou me referir a ele na próxima vez. Devo salientar que é um pouco tolo, porque primeiro avisa sobre nunca usar o apt-get e, em seguida, passa a baixar uma dúzia ou mais de dependências ruby ​​dele: | De qualquer forma, é possível que parte da minha dor tenha sido causada por ter que usar especificamente o 1.9.2-p180; as versões futuras tinham correções específicas do Ubuntu que precisavam ser tratadas manualmente para essa versão. Ótima resposta no geral, me dá mais confiança em aderir ao sistema operacional para trabalhos futuros.
Alexandr Kurilin
Aqui está o problema que eu estava encontrando, entre muitos outros: digitaldisorder.posterous.com/ruby-rvm-and-debian-sid-problems
Alexandr Kurilin
Se você gostou desta resposta, clique em "Esta resposta é útil", além de agradecer quem respondeu. Esta também é uma demonstração de agradecimento àqueles que se deram ao trabalho de pesquisar e responder à pergunta. :)
João Santana
1

Apenas para sua informação: Acabei de concluir uma instalação completa do RoR no Ubuntu 12.04 em cinco minutos.

  • 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-devsão apenas para Nokogiri (se você precisar) e postgresql-9.1, libpq-devepg são apenas para o banco de dados PostgresSQL (se você precisar).

Depois disso, fui capaz de executar bundle installnos meus diretórios de projeto Rails para colocar todas as Gems necessárias em funcionamento e tudo funcionou. Não há necessidade rvme nunca encontrei pacotes quebrados. OK, então eu não estava interessado em uma versão específica do Ruby, mas por que você estava?

Talvez você tenha encontrado um dos sites (infelizmente muitos) de "Ruby-manual-hack-instalação-du-jour", que diz para você descartar todos os sistemas de gerenciamento de pacotes e compilar tudo sozinho.

Em contraste com o cartaz anterior eu acho que uma das diferenças entre Windows e Linux sobre Ruby é que no Windows há nenhuma maneira "oficial" de instalação de software (mas muitas formas não-oficiais, instaladores, sites etc.), mas no Linux não é uma maneira "oficial" (o pacote do distribuidor) e que geralmente funciona melhor, mas limita um pouco as suas escolhas.

E como o software Linux tende a compartilhar muito mais (código, funcionalidade etc.) como o software Windows, e a distinção entre o "SO" e os "aplicativos" é muito mais desfocada do que no Windows, se você começar a compilar e instalar manualmente o software no Windows. O Linux espera ter que se preocupar muito mais com dependências, bibliotecas e assim por diante do que no Windows.

A melhor maneira é sempre obter os pacotes de distribuidores (minha experiência).

Jens
fonte
o problema com essa abordagem, 'sudo gem install rails pg' é que nem todas as gemas estão disponíveis dessa maneira. Qual é o apelo ao RVM (que tem suas próprias desvantagens).
Thufir
Thufir, quais jóias estão faltando especificamente? E por que isso é um problema (já que você sempre pode adicionar mais fontes de gemas, usando gemas ou bundler)?
Jens
me corrija se estiver errado, mas gem é um gerenciador de pacotes semelhante ao apt-get. O que você está sugerindo é usar o yum ao lado do apt-get, por assim dizer. Soa como caos para mim, mesmo que nada dê errado. (e se houver um conflito de versão entre o que o apt-get possui e o que a gem possui?) Existem muitas, muitas gemas disponíveis via gem que não estão no apt-get.
Thufir
É por isso que eu traço uma linha nos 'trilhos'. I usar o apt-get para instalar tudo, incluindo Ruby, em seguida, usar gem para instalar Bundler e bundler para instalar a versão Rails necessário e todas as gemas necessárias para uma específica Rails aplicativos de acordo com a sua Gemfile. Para começar, eu normalmente instalo a versão atual do Rails via 'gem install' em todo o sistema também (isso não dói, mas não é necessário). Sim, isso oferece a você apenas uma versão do Ruby para trabalhar, mas esse não foi um problema até agora.
quer
1
Thufir, leia meu post novamente. Eu não estou usando o apt para gemas em aplicativos de trilhos. Eu uso o Bundler, com um conjunto de gemas separado para cada aplicativo.
Jens