更新
原谅我的无知,我想当我真正意味着RubyGems的时候,我问过他关于rvm的问题。我认为他正在考虑使用RubyGems,因为它似乎确实存在一些争议,至少在过去是如此:http://stakeventures.com/articles/2008/12/04/rubygem-is-from-mars-aptget-is-from-venus。所以请输入以下问题的s / rvm / RubyGems / g。
结束更新
我的服务器管理员有点担心在Debian上使用rvm。这就是他所说的:
不幸的是,整个rvm系统没有正确地与a进行交互 像Debian这样的包装系统,当你这么做时,这是一个噩梦 在不同时间进行部署。 [你可以很容易地结束 不同系统上的不同版本的模块等,你有 处理整个Debian包装系统的rvm stomping。]
我认为他在这里说的是我们将在多个服务器上运行应用程序,如果我们升级一台服务器,它将给我们带来严重问题。
有没有办法解决他的担忧?
答案 0 :(得分:3)
RVM绝不会在debian软件包系统上形成或形成'stomps'。对于普通用户,RVM安装在$ HOME / .rvm中,或者使用必须添加成员的'rvm'组安装在/ usr / local / rvm中,这是第三方非任务关键型应用程序的正常位置,标题和图书馆。
RVM成立因为包管理器的。他们永远搞砸了红宝石和宝石的依赖关系,落后于立即推出安全更新的时代,在同一个盒子上安装和管理多个红宝石而不必玩符号链接游戏让他们工作,并进行部署对具有多个不同部署要求的多台计算机来说,这是一场噩梦。
RVM在一个相当无缝的问题上解决了所有这些问题,特别注重确保安装的安全性和使用它的用户,同时确保不会涉及包管理器。这可以确保软件包管理工具及其已安装软件包的数据库不会突然被破坏。
我作为用户参与进来,然后作为RVM项目的开发人员参与其中,因为它解决了这个困境,并且非常优雅。
答案 1 :(得分:2)
他担心 ruby是移动目标,ruby每隔几个月更新一次,所有用户应始终更新为最新补丁级别
Ruby是一个很多不同的软件包(可能除了openssl),其中ruby团队正在使用补丁更新版本,这可以将安全工作集中在一个地方,但这是针对软件包管理器的保守方法的选择一个版本并且只应用安全补丁,因为它听起来很强烈稳定 - 它会在多个团队中分散安全性并减慢整个开源社区的速度。操作系统维护者不希望接受某人为他们做部分工作的事实,他们可以信任某人。
至于你的管理员表现出很多无知的过程的重复性,RVM允许锁定版本,这违反了上面解释的Ruby方法。因此,锁定所有内容的最简单方法是将RVM锁定到一个版本:
rvm install 1.15.14
但是如果需要锁定RVM,首选的方法是将其锁定到保持兼容性的次要版本,但提供了更新:
rvm install latest-1.15
RVM不会让这个版本持续很长时间,但是只要担心当前稳定的“稳定性” - 我们会保持先前版本的更新,以便您决定使用哪个版本。
@deryldoucette在他的回答中也解释了很多,我试图不“重新解释”事情。
答案 2 :(得分:2)
Rubygems不允许对gem版本进行良好的控制,但与apt-get相比,它可以更好地控制版本。
您需要阅读Bundler - 它允许您在Gemfile
中指定松散的依赖关系,并在Gemfile.lock
中记录严格的依赖关系。