manutenção / instalação de ruby gems / ruby on rails no Linux em geral e no Gentoo

5

Atualmente estou olhando para Ruby / Ruby on Rails como uma alternativa ao Python / Django. Meu principal problema é que não está claro quais são as melhores práticas quando se trata de instalar gems Ruby e / ou projetos Ruby on Rails em um Linux com um dist geral ou Gentoo em particular.

No Gentoo, os desenvolvedores tendem a empacotar as gemas. É a maneira preferida de instalar aqueles via portage em vez de gem. No entanto, eu não sei se este é o caminho certo, porque você sempre terá grandes projetos e suas dependências faltando, e você teria que escrever seu próprio ebuild (e não um grande negócio) e mantê-lo. E nesse momento eu não vejo mais vantagem porque eu tenho que seguir os pacotes de perto para novos desenvolvimentos, uma vez que eu escrevi meu próprio ebuild, porque não haverá nenhum problema mágico no pacote. :-) Também o mundo Ruby é um alvo em movimento rápido e nem todas as gemas empacotadas na árvore do dist estão realmente em alta velocidade.

Por outro lado, instalar diretamente via Bundler ou diretamente através do gerenciador de pacotes gem parece meio esquisito também. Você ignora o gerenciador de pacotes dists e tem dois gerentes concorrentes se você não for cuidadoso. O dist é atualizado para o Ruby 1.9.4 e introduz algumas características específicas dist e algumas gemas quebram inesperadamente, por exemplo. No entanto, eles corrigem suas próprias jóias embaladas para isso. Ou, se você usar Bundler, os projetos tendem a ser bastante restritos quando se trata das versões de suas dependências e, portanto, mesmo que uma atualização de segurança para uma dependência esteja disponível, talvez você não a obtenha porque o projeto especificou explicitamente uma versão. Então você tem que pular de novo manualmente.

Neste momento, eu apreciaria a opinião da comunidade sobre o caminho certo (TM) para lidar com essas coisas e como manter adequadamente uma base Ruby / Ruby on Rails e vários projetos (incluindo os de terceiros) em um servidor de produção. .

Por favor, note que não se trata de como implantar um projeto / aplicativo. Isto é sobre as melhores práticas quando se trata de manutenção ...

    
por khaos 29.04.2012 / 19:48

2 respostas

3

No que diz respeito às Melhores Práticas, sugiro que você contrate um SysAdmin para executar essas funções e monitorar seu equipamento. Você não precisa contratar essa pessoa em tempo integral, pois há muitos administradores de sistema que oferecem esses serviços por contrato para um determinado número de horas por mês.

Se isso não acontecer, presumo que isso seja algo de uma organização de DevOps ou de uma empresa de uma pessoa só? Nesse caso, questionaria a escolha do Gentoo para uma distribuição em uma configuração como essa. Crie seu aplicativo em uma distribuição estável com pacotes pré-compilados e suporte a fornecedores. Concentre sua funcionalidade em uma versão de uma plataforma e atualize-a periodicamente com a versão mais nova, conforme necessário. Não gaste seu tempo correndo atrás da versão de ponta de um idioma ou plataforma que está "em movimento rápido", já que essa é uma receita para a ineficiência na melhor das hipóteses e um empreendimento mal sucedido na pior das hipóteses.

    
por 29.04.2012 / 21:52
2

Se você está vendo o Rails como uma alternativa ao Python / Django, é provável que você já saiba virtualenv e por que você quer usá-lo.

Para Ruby e Rails, sugiro que você dê uma olhada em rvm e rbenv.

    
por 30.04.2012 / 10:53