新手问题 如何在 win2003 或 xp 上安装 ruby (>= 2.3)

L-codes · 2019年01月24日 · 最后由 L-codes 回复于 2019年01月26日 · 1491 次阅读

使用 rubyinstaller 安装的 ruby,无法运行报出下面的错误

下面 issue 提到 rubyinstaller 也并不打算支持 xp 或 win2k3 https://github.com/oneclick/rubyinstaller/issues/271

我也正在尝试编译 ruby 但是编译也遇到很多问题,现在卡在这里,有解决过的,求指导一下

请问有什么方式,在 win2k3 上安装运行 ruby? 有在 xp 和 win2003 能运行的 ruby 吗?也求打包共享一份

Windows XP / 2003 都是不被支持的 OS 了, 不再收到安全补丁更新, 新软件支持越来越少. 有什么理由一定要用么.

如果可以不用, 还是推荐升级到 Windows 10.

今年 2019 年……

win2k3 安装个 linux 虚拟机,然后商品映射,这只是个想法,你可以试一下。

这系统别说 ruby,java 也不一定跑得起来,跑得起来就 jruby

5long 回复

还有很多服务器在用 win2003 的。。。而且这些服务器我不能提建议升级也不能太大动作- -

Rei 回复

可事实是,现在内网还有很多 win2k3 的服务器。。。

这种自寻死路的,还是自己玩吧

Peter 回复

不能搭建 linux 虚拟机,需求是尽可能小的传输。。。因为我还需要用 ocra 打包程序到 win2k3 运行

oldfritter 回复

为什么是自寻死路?这样说吧 win2k3 服务器不是我自己的 我需要在那服务器上通过 ruby 运行一些进程

nouse 回复

可是工作总不能因为这系统,就放弃工作了呀。比较喜欢 ruby 所以优先考虑用 ruby,实在不行就用 python 或 go 写了,看看社区里是否有人解决过这个问题

我也希望能支持 winxp win2003 这边有几百台老电脑,内存只有 2G,CPU 也旧。

sevk 回复

终于有人理解了 😂

rubyinstaller 装不了的,2.0 开始就不行,印象中是 gcc 依赖了新版本的 dll,你如果重新用 xp 下的编译器进行编译就可以

mruby 可以试一下自己编译

L-codes 回复

还不如装 Linux,搞个 Cluster 出来

mizuhashi 回复

哦没看到你已经在编译了,如果编译出问题我也不知道怎么弄了,试多几个编译器吧。。其实 1.9 语法对 2.0 变化不大,也就少了个 keyword arguments,建议别折腾了

mizuhashi 回复

是好折腾。。。能编译出一个 win2k3 能跑的 ruby.exe 应该就问题不大了

nouse 回复

😅 服务器不是自己的前提下。。。动作要小

sevk 回复

mruby 写起来会不会跟 cruby 的差很大?而且好像也要编译,cruby 本身就支持 win2k3,我也是遇到编译问题。。。

装个旧版本的 Virtualbox,再在里面跑 Linux(逃

9102 年了

L-codes 回复

你是有百万年薪吗?这已经接近 Oracle 的 Hell Job 了 https://news.ycombinator.com/item?id=18442941

L-codes 回复

可以放弃,如果公司让我用 windows 电脑开发 ruby 的话我肯定会走,或者说压根也不会进去(我都会问公司是用什么做开发),更别提服务器了,不过现实中各有考量了😎

winxp/server 2k3 跑 ruby2.x 的一个简单粗暴的修改就是把导入表里面的这个名字改了,看改成 localtime64_s 还是 mktime64_s 还是_gmtime32_s 还是啥的。 现在我手上没有 XP 的电脑了,之前改过一个时区也不一样。

最简单粗暴的改法就是用二进制编辑器打开 msvcrt-ruby200.dll 找_gmtime64_s\0,记得备份之前的。记得改过之后的函数名后面有一个\0. win2k3 应该可以试试,最好是打开 msvcrt.dll 确认一下 (exescope)

nouse 回复

😂 没有百万年薪,这可能就是为公司开发和自己玩的差距吧

kevinyu 回复

不是公司要求我用 windows 开发 ruby。。。我是要在拿到权限的主机中进一步的扩展内网,有一群人是需要在各种系统版本不定,环境不定的服务器上开发工具的,那群人的工作叫做——渗透测试

RGSS3 回复

😀 谢谢啊 不过修改 dll 文件的话 影响不太好

L-codes 关闭了讨论 01月25日 13:12
L-codes 重新开启了讨论 01月25日 13:12

😬 感谢各位的回答~ 后面考虑到 ocra 的打包运行前还要解压,放弃了 ruby 打包运行的想法,因此不需要解决 win2k3 运行 ruby,改用 golang 实现。。。

golang 也不行啊 https://github.com/golang/go/wiki/Windows

Distributions Architectures Initial support version Final support version

Windows XP, Windows Server 2003 amd64, 386 Go 1 * Go 1.10.8

nouse 回复

这样。。。谢谢提醒啊 那用 golang <=1.10.8 就好了吧。。。

2003 的系统就老老实实用 2003 年前后的软件。

新软件不会去支持不支持的系统,系统也不会再更新以支持更新的软件。

不支持之所以叫「不支持」,是有原因的,因为它不被支持了。你一定要尝试的话,可以试试看 Ruby 1.8.7。

msg7086 回复

但是 ruby 1.8.7 很多 gem 都不支持了。。。

L-codes 关闭了讨论 01月26日 18:45
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册