社区和群里源源不断的有人这 windows 下使用 ruby (on rails),每次出的问题基本都差不多,不是编码错误就是 native 库编译出错。
Mac 大法好!!!
Linux 大法好!!!
得到的回答基本是以上两派。
如果你实在没办法绕开,需要在 windows 下使用 ruby (on rails),试试我的做法。
抱歉我并没有解决你的问题,我知识不想再浪费时间在这些无聊的问题上,所以我选择虚拟机方案。
我的组合是这样的:
vagrant + ubuntu + putty + sublime text
动手之前先找一个稳定的梯子,你有很大的机会用到。
下载安装,完成后在 cmd 敲入命令
vagrant
接下面 vagrant 会出现提示并自动下载并安装 virtualbox,如未能成功安装,请到自行下载安装。
接下来需要虚拟机镜像,也就是 box。
vagrant init ubuntu/xenial64
此命令会生成 Vagrantfile 配置文件
14.04 LTS (trusty) 或者 16.04 LTS (xenial) 自行选择
可能会很慢,请 copy 下 box 的地址自行下载,然后再手动导入。
vagrant box add ubuntu/xenial64 path/to/box
接着
vagrant up
如果机器没起来,你需要打开 virtulalbox 手动启动虚拟机,查看错误信息。
很有可能是因为 CPU 没有开启 VT 支持,请在 BIOS 中开启。
如果起来来了,你会照着网站上
vagrant ssh
然后并没有什么卵用,大概你没有安装 ssh 客户端。
请下载 putty 和 puttygen,使用后者把 vagrant 工作目录 (即 Vagrantfile 所在的目录) 下的 ssh key 转化为 putty key,然后按照提示使用 putty 登陆。
接下来修改 ubuntu 源,推荐:
默认的网络配置可以正常安装软件。
回到 windows,运行下面的命令安装 virtualbox 扩展,挂载目录需要扩展支持。
vagrant plugin install vbguest
此命令会安装必要的构建工具,内核头文件,和一个内核扩展模块。
完成后修改 Vagrantfile 中共享目录和端口映射相关的配置。比如
config.vm.synced_folder "../Project", "/home/ubuntu/Project"
config.vm.network "forwarded_port", guest: 3000, host: 3000
然后重新加载配置文件:
vagrant reload
16.04 自带 ruby 2.3,当然也可以使用 rvm,rbenv 等安装。
安装 ruby-dev zlib-dev, libxml2-dev。
修改 gem 源,推荐本站。
安装 rails,生成项目。
或许你需要安装 nodejs 来作为 execjs 的执行环境。
rails 开发服务器需要监听 0.0.0.0 才能在 windows 里访问到。
rails s -b 0.0.0.0
sublime text
atom
其他还有 RM 之类的 IDE,都试试看。
直接在虚拟机的命令行下使用 vim 也是个不错的选择。