在一般的Linux和Gentoo上维护/安装ruby gems / ruby​​ on rails

我目前正在研究 Ruby / Ruby on Rails作为 Python / Django的替代方案.我的主要问题是,在具有普通dist或Gentoo的Linux上安装Ruby gem和/或Ruby on Rails项目时,最不明确的是什么.

在Gentoo中,开发者倾向于打包宝石.这是通过portage而不是gem安装它们的首选方式.然而,我不知道这是否是正确的方法,因为你总是会丢失重要的项目和他们的依赖项,你要么必须编写自己的ebuild(并不是那么重要)并维护它.在那一点上,我没有看到任何更多的优势,因为一旦我编写了自己的ebuild,我必须密切关注软件包以获得新的开发,因为包装中不会有任何神奇的颠簸. :-)此外,Ruby世界是一个快速移动的目标,并不是所有在dist树中打包的宝石都非常快.

另一方面,直接通过Bundler或直接通过gem包管理器进行安装似乎也有点不稳定.如果您不小心,您可以绕过dists包管理器并拥有两个竞争管理器.例如,dist更新了Ruby 1.9.4并引入了一些特定于dist的特性,并且一些宝石意外中断.然而,他们为自己修补了自己的包装宝石.或者,如果您使用Bundler,项目在依赖项的版本方面往往相当严格,因此,即使可用的安全更新,您也可能无法获得它,因为项目明确指定了一个版本.所以你必须再次手动跳入.

现在,我很感激社区关于正确处理这些事情的方法(TM)以及如何在生产服务器上正确维护Ruby / Ruby on Rails基础和几个项目(包括第三方项目)的意见.

请注意,这不是关于如何部署项目/应用程序.这是关于维护的最佳实践……

解决方法

就最佳实践而言,我建议雇用SysAdmin来执行这些功能并监控您的设备.您不需要全职雇用这样的人,因为有许多系统管理员在合同的基础上每月提供这些服务一定的时间.

如果做不到这一点,我认为这是DevOps组织或单人公司的事情?在这种情况下,我会在这样的设置中质疑Gentoo在分发中的选择.使用预编译的软件包和供应商支持在稳定的发行版上构建应用程序.将您的功能集中在一个版本的平台上,并根据需要定期更新它.不要花时间追逐“快速发展”的语言或平台的最新版本,因为这是最好的低效率和最坏的商业冒险的一个秘诀.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...