
























这是一个创建于 3634 天前的主题,其中的信息可能已经有所发展或是发生改变。
基本上 3 年以后,换服务器的时候项目就等于盼了死刑。
我 13 年做了个项目,用的当时最新的 rails3.2 。现在转服务器,不知道那个 gem 依赖了 eventmachine ,并且必须是 1.0.0 版的,为了兼容这个 1.0.0 版,不得不用 ruby 2.0.0 ,但是,在这个低版本的 ruby 上, rake 已经罢工了,必须得 2.2.2 以上。
其实我用的 gem 不算多, Gemfile 里满打满算也就 10 个左右。
linux环境的跨度也不算大,仅仅从ubuntu12到ubuntu14,难以想象到ubuntu18、ubuntu20,这个项目还有没有继续运行的可能。
如果你的 web 项目打算让它稳定运行 10 年以上, java 和 php 仍是最佳选择,那些新技术拿来玩玩就行了,别用生产环境。
第 1 条附言 · 2016 年 7 月 2 日
算了,项目用 php 重写了
1 dishonest 2016 年 7 月 2 日请用 docker 之类。 rails 部署时麻烦了点,但同理 nodejs , python 也会遇到同样问题。 |
2 dorentus 2016 年 7 月 2 日 via iPhoneGithub 表示不服。 |
3 shyling 2016 年 7 月 2 日 via iPad所以什么都不要升级就好了。。。 |
4 blacklee 2016 年 7 月 2 日线上已经运营 2 年+,版本为 Ruby: 2.1.1, Rails: 4.1 。 |
5 blacklee 2016 年 7 月 2 日在 Gemfile.lock 里查看依赖关系 |
6 blacklee 2016 年 7 月 2 日呃,其实吧,你的问题可能在线上环境不要用 Ubuntu 。 |
7 jerray 2016 年 7 月 2 日长期运营的项目,为什么不随着语言和框架的更新进行适当升级? |
9 lianghudou 2016 年 7 月 2 日@jerray rails 跟 php 和 java 不一样,每次升级 api 都被改的面目全非,项目没法随着框架升级。 |
10 matsuijurina 2016 年 7 月 2 日 via Android现在有 docker 了,这些都不是问题了。要说依赖的兼容问题, php 用了 composer 之后也一样。 |
11 mdluo 2016 年 7 月 2 日 via iPhone项目的依赖本来就需要不断及时升级,及时修复 要么就所有依赖全部版本固化 你所说的 php/java 稳定是因为它们的依赖管理器( Packagist / Composer / Maven / Gradle )本身比 Gem 优秀呢,还是因为十年前的项目基本没有用依赖管理(直接把依赖的库放进来,不去更新当然不会出问题) |
12 lianghudou 2016 年 7 月 2 日@matsuijurina |
14 blacklee 2016 年 7 月 2 日年轻人,不要这么喜欢呵呵。 |
15 karloku 2016 年 7 月 2 日3 年都舍不得升级一下 gem... 如果你真的很保守不愿意随便升级 gem 的话, 那就在 Gemfile 里把版本锁住, 并且把 Gemfile.lock 加入版本管理. |
16 publicAdmin 2016 年 7 月 2 日铜币拿去, |
17 lianghudou 2016 年 7 月 2 日@karloku 不是舍不得升,有的 gem 新版本跟 rails 3 已经不兼容了,但是老版本又跟 ruby 新版本不兼容,如果用老版本 ruby 呢, passenger 就装不上了。 简言之,就是有的 gem 必须用老版本,有的 gem 必须用新版本,一个 gem 的坑就把整个项目搁浅了。 在这里也跟用 flask 的 pythoner 一个忠告,自己玩玩的话用 flask 可以,如果长期运营的项目还是 django ,用一大堆的第三方库建的项目,过几年就知道危害了。 |
18 ysr1023 2016 年 7 月 2 日rails 算新技术啦?你让一堆 js 框架情何以堪... 我司有 3 年以上的 rails 项目,运行得好好的, lz 请从自己身上找找原因吧。 |
19 lululau 2016 年 7 月 2 日 via iPhone典型的拉不出屎怪地球引力不够 |
20 julor 2016 年 7 月 2 日 via Android用 golang 编译后就是一个可执行文件,不存在依赖,这么好的语言不用? |
21 cxh116 2016 年 7 月 2 日 via Androidjava 现在都 1.8 了, 1.7 都结束支持了。但还有很多线上环境用 1.4 1.5 。他们的项目不升级处理在 java 1.8 环境上面部署吗? 既然不愿意升级,就都用老版本的东西。 ruby 1.8.7 肯定兼容 rails 3 。 ruby 1.8 都默认没有 gem , rake ,需要自己手动装,至于怎么安装指定的 gem ,好好看看 rubygems 的 gem 命令参数吧。 |
22 jetbillwin 2016 年 7 月 2 日Github 表示不服,你不更新,锁定版本不就好了。自己技术差,怪不得别人。另外,长期运营,难道你想写了一个代码,十年都不动了😂??? |
23 aveline 2016 年 7 月 2 日Grails 大法好(逃 |
24 bclerdx 2016 年 7 月 2 日@cxh116 却是,很多线上环境还是 JAVA JDK 1.4 、 1.5 、 1.6 的古老环境,针对 JAVA JDK 1.8 环境没有部署。 |
25 SmiteChow 2016 年 7 月 2 日不可能啊,没有 virualenv 吗?我记得是有的。 |
26 PublicFourWord 2016 年 7 月 2 日如果不会用 rails ,千万别用 rails |
27 wsy2220 2016 年 7 月 2 日自己能力问题不要赖别人 |
28 chareice 2016 年 7 月 2 日楼主处处传授人生的经验啊,你咋不上天呢。 |
29 spark 2016 年 7 月 2 日铜币拿走, 莫黑我大铁路! |
30 ichou 2016 年 7 月 2 日 via iPhonephp 现在已经分成 3 个阵营 请问是楼主自己总结的吗 |
31 chloerei 2016 年 7 月 2 日Rails Conf 2012 Keynote: Progress by David Heinemeier Hansson |
32 RangerWolf 2016 年 7 月 2 日虽然楼主我基本上赞同你的意见,但是你在 V2 上开喷某个语言不行,不是找骂吗? |
33 phpuser 2016 年 7 月 2 日 via Android10 年前的 Rails 项目仍在发挥余热的路过。 10 年没改过代码,只是换了几次服务器。 |
34 frankzeng 2016 年 7 月 2 日你的 ubuntu 不要升级嘛,然后直接把所有库文件拷过去。 |
35 techmoe 2016 年 7 月 2 日 via Androiddocker 解决最佳范例 |
36 xiaket 2016 年 7 月 2 日刚接手一个线上运营了 7 年+的 rails 项目... |
37 mml 2016 年 7 月 2 日长期运营的项目,我估计除了重启,没人想 /敢去碰。 |
38 vinceguo 2016 年 7 月 2 日 via Android什么时候升级 os 版本都不算大事了? naive |
39 zaishanfeng 2016 年 7 月 2 日 via Android这个问题任何语言都存在。我觉得你应该先找出问题在哪。 |
41 sagnitude 2016 年 7 月 2 日一个已经基本结束开发,正在长期稳定运营的工程,你这升级操作系统版本是不是太激进了? |
43 lightening 2016 年 7 月 2 日你要么什么都不升级,要么一直升级到最新版。怎么会突然只升级一个依赖需要 eventmachine 了呢? “为了个 rails 放弃 ubuntu ,呵呵~” |
47 Actrace 2016 年 7 月 2 日说白了,楼主更在意编程语言的生态。 欢迎加入 PHP 阵营。 |
49 zhs227 2016 年 7 月 2 日经历过 2->3 的升级。表示只要锁住依赖,继续使用 rails2 ,就不会有大问题。 gem 依赖过多容易出现的问题是,部分 gem 失去维护,好多年不更新版本了。因此在 2->3 的过程中,就有少部分的代码重写了,目的是移除那些死掉的 gem. PHP 的 packagist 理论上也是有这样的问题,但由于 php 在版本升级的过程中没有大破大立,因此问题显得不严重。 如果一个 gem 好多年都不更新了,确实在使用的时候要慎重考虑。 |
51 seamon 2016 年 7 月 2 日你自己说的“满打满算 10 个 gem ”,要么你在 Gemfile 里锁版本,随便换服务器。要么你既然“长期运营”,就时常升级一下,也不会有问题。 你这么大开大阖地玩 rails ,让我们这些依赖 100 多个 gem 跑了两三年正准备升 rails5 的项目,情何以堪啊。 |
52 likuku 2016 年 7 月 2 日服务器环境整体打包迁移嘛,软件环境完全一样就是了。 |
53 izoabr 2016 年 7 月 3 日唉, python 用户一样 |
54 orancho 2016 年 7 月 3 日铜币给你了,别无脑黑秀下限。 |
57 msg7086 2016 年 7 月 3 日一个不经常维护的系统也敢叫长期运营? 呵呵。 |
58 grzhan 2016 年 7 月 3 日关于 LZ 对于 flask 的看法表示一定程度的赞同 |
59 julor 2016 年 7 月 3 日 via Android |
60 hging 2016 年 7 月 3 日 via iPhone自己不会用就怪框架怪语言,快去用 php 吧。 |
61 TangMonk 2016 年 7 月 3 日 via Android把那个依赖 eventmachine 的 gem folk 下来改了就好了嘛 |
62 colorfulberry 2016 年 7 月 3 日对于 rails 你不就是换个环境么,要么带上 Gemfile.lock 要么就升级下项目 |
63 rootooroot 2016 年 7 月 3 日楼主不想和楼上的说话 并向他们扔了一堆依赖 =。= |
64 Ahri 2016 年 7 月 3 日醉了,看标题以为是跟我一样吐槽 Rails 各种落后的理念,结果是来推 Java 和 PHP 的。。。 倒车,请注意。倒车,请注意。 |
65 Balthild 2016 年 7 月 3 日 via Android@lianghudou 如果你的 php 项目要几十个、上百个依赖,每个依赖你都手动放置、加载、升级,累不累啊你。 |
66 HLT 2016 年 7 月 3 日说得好像 PHP 不用 composer 了一样。。。 |
67 jeremaihloo 2016 年 7 月 3 日 via Android这个时候就还考虑夸一夸我大 golang 了 |
68 newghost 2016 年 7 月 3 日我觉 php 升级起来兼容问题也挺多的 |
69 2225377fjs 2016 年 7 月 3 日楼主说的还是有一定客观性的呀,在版本稳定兼容性方面 python , nodejs , rails 之类的确实比不上 java ,不过上 V2EX 来喷一些语言,看样子犯了大忌啊。 如果想要少花一些精力在版本升级方面的工作,而且要长期维护,选 Java 还是有优势的。 |
70 akira 2016 年 7 月 3 日只要是升级,兼容性都会有可能出问题的。 |
71 nine 2016 年 7 月 3 日rails 项目,只要每次 release 版本都跟着升级就好了 |
72 reus 2016 年 7 月 3 日把原先的文件系统整个复制下来,然后用 systemd-nspawn / docker / rkt 跑。 虽然 rails 这样确实值得批评,但是是有办法解决的,没必要重写。 |
73 16500682 2016 年 7 月 3 日 via Android善用 docker |
74 mingyun 2016 年 7 月 3 日php7 ,你值得拥有 |
75 lguan 2016 年 7 月 4 日个人水平问题,正好前两天有个客户一个服务器坏,上面跑的项目是 rails 3 的, 12 年跑到现在,没有一次停机,直到前几天服务器挂掉,重新挪到新的服务器上又跑了。 手上还有几个项目都是跑了五六年的,不过一直保持着版本的升级 |
76 TimLang 2016 年 7 月 4 日 via Android一个项目才 10 个 gem 也来黑。 |
77 firefox12 2016 年 7 月 4 日用得很少的一段时间,但是我想说一个一升级就改接口的库也好 语言也好,只能说明了不成熟。一个 ruby on rails 的教程, 3.0 4.0 的创建项目的命令都不一样了 这感觉就是这个大楼的门每天都变样子.... |
78 xuyifei 2016 年 7 月 4 日。。感觉楼主已经被喷走了 |
81 heimirror 2016 年 8 月 3 日我们公司 rails2 运行快 10 年了 |
82 wpzero 2016 年 12 月 11 日 via iPadGithub airbnb 不都是吗?项目好几年不维护升级,环境不固化,还说毛呀。 |
83 cmingxu 2023 年 2 月 23 日rails 表示不服, 其他框架同样存在类似问题,试想一下 c++ |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。