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

L-codes · January 24, 2019 · Last by L-codes replied at January 26, 2019 · 1920 hits

使用 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

Reply to 5long

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

Reply to Rei

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

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

Reply to Peter

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

Reply to oldfritter

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

Reply to nouse

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

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

Reply to sevk

终于有人理解了 😂

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

mruby 可以试一下自己编译

Reply to L-codes

还不如装 Linux,搞个 Cluster 出来

Reply to mizuhashi

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

Reply to mizuhashi

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

Reply to nouse

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

Reply to sevk

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

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

9102 年了

Reply to L-codes

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

Reply to 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)

Reply to nouse

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

Reply to kevinyu

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

Reply to RGSS3

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

L-codes closed this topic. 25 Jan 13:12
L-codes reopened this topic. 25 Jan 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

Reply to nouse

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

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

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

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

Reply to msg7086

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

L-codes closed this topic. 26 Jan 18:45
You need to Sign in before reply, if you don't have an account, please Sign up first.