分享 Window 10 下的开发 Rails

torvaldsdb · 发布于 2016年12月10日 · 最后由 msl12 回复于 2017年04月21日 · 5008 次阅读
19780
本帖已被设为精华帖!

Guide

window下开发需要条件

  • 首先下载虚拟机vagrant: Vagrant下载,Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。那么我们需要下载VirtualBox
  • 然后下载VirtualBox: VirtualBox下载
  • 我们还需要一个命令还工具:cmdercmder下载 cmder很多github上得给的下载链接都失效了,我这个暂时是可用的
  • vagrant封装好的Ubuntu镜像我们把它叫做ubuntu14.03-server-rails.box
  • 当然还有我们喜爱的编辑器sublime text 3

都下载安装好之后,我们需要配置一下cmder

  1. 下载好cmder后,解压即可使用。只是这样使用很不方便,然后我们接着做以下操作
  2. cmder 加到环境变量:把Cmder.exe存放的目录添加到系统环境变量;加完之后,Win+r一下输入cmder,这样就可以启动cmder
  3. 添加 cmder 到右键菜单: 在命令提示符(管理员)(A)的终端中输入Cmder.exe /REGISTER ALL,这样以后我们可以在任意文件点击鼠标右键可以看到cmder here

到此为止cmder必须的配置已经搞定

我们可以开工了。

  • 首先我们向虚拟机里面添加ubuntu14.03-server-rails.boxvagrant box add ubuntu-rails ubuntu14.03-server-rails.box, ubuntu-rails是生成系统的名字,这里我的cmder已经切换到ubuntu14.03-server-rails.box所在的目录下
  • 接着在你工作的目录下进行一下操作 mkdir workspace cd workspace mkdir ubuntu-rails cd ubuntu-rails
  • 将本目录初始化化为ubuntu系统 vagrant init ubuntu-rails

接下来可以直接启动系统了

  • 启动系统 vagrant up
  • 登录系统 vagrant ssh 到了这一步,你就可以看到,你的系统已经不再是你的win系统而是你的ubuntu系统
D:\workspace\ubuntu-rails (master)
λ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 3000 (guest) => 3001 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 5.0.8
    default: VirtualBox Version: 5.1
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => D:/workspace/ubuntu-rails
    default: /home/vagrant/workspace => D:/workspace/ubuntu-rails
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

D:\workspace\ubuntu-rails (master)
λ vagrant ssh
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sat Dec 10 18:56:48 CST 2016

  System load:  0.74              Processes:           88
  Usage of /:   34.1% of 6.76GB   Users logged in:     0
  Memory usage: 9%                IP address for eth0: 10.0.2.15
  Swap usage:   0%                IP address for eth1: 192.168.33.10

  Graph this data and manage this system at:
    https://landscape.canonical.com/

179 packages can be updated.
126 updates are security updates.

New release '16.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Sat Dec 10 16:33:37 2016 from 10.0.2.2
vagrant@ubuntu:~$ ls
workspace
vagrant@ubuntu:~$ cd workspace/myblog/
vagrant@ubuntu:~/workspace/myblog$ rails s
=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-12-10 18:58:40] INFO  WEBrick 1.3.1
[2016-12-10 18:58:40] INFO  ruby 2.2.1 (2015-02-26) [x86_64-linux]
[2016-12-10 18:58:40] INFO  WEBrick::HTTPServer#start: pid=2699 port=3000

这样我们的项目就跑起来了,不过这样跑起来,浏览器并不能与我们的服务互动。我们需要一点小操作:

我们在启动服务的时候,不要用localhost这个主机

我们需要指定主机 rails s -b 0.0.0.0

这样服务跑起来是:

vagrant@ubuntu:~/workspace/myblog$ rails s -b 0.0.0.0
=> Booting WEBrick
=> Rails 4.2.4 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-12-10 19:05:06] INFO  WEBrick 1.3.1
[2016-12-10 19:05:06] INFO  ruby 2.2.1 (2015-02-26) [x86_64-linux]
[2016-12-10 19:05:06] INFO  WEBrick::HTTPServer#start: pid=2710 port=3000

然后我们可以在我们windows下的浏览器中访问我们的服务了 http://localhost:3001

特别☆强调

浏览器访问的时候用的端口是:3001 上面vagrant up启动虚拟机的时候已经告知:

==> default: Forwarding ports...
    default: 3000 (guest) => 3001 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)

温馨提示

  • 在cmder中切换windows下路径可以 cd .. 不过如果更换根目录的时候需要类似 cd /d D:\download这个/d不可省略,或者用pushd D:\download

  • 下载好了sublime text 3之后我们需要实现 subl .启动文件的功能

  • 打开Cmder安装目录下的config文件夹下的aliases文件。

  • 在aliases中增加一行,添加别名。 subl="D:\PROGRA~1\sublimeText3\sublime_text.exe"

如果你的屏幕足够大或者你分辨率足够高你可以选择 subl="D:\PROGRA~1\sublimeText3\sublime_text.exe" $1 -new_console:s50H这样你左边是终端,右边是sublime

这样你已经可以很舒服地在windows下开发了,还有一些小细节,可以参考相关文献

未解决的问题

第一次用这个windows下的sublime,全局搜索快捷键ctrl + shift + f,无法使用

共收到 32 条回复
19106

学习了 这种应该比linux on windows快

我用的linux on windows 新的感觉不错, 除了IO速度慢的一坨。

配合好看的终端工具不错。

Docker on windows也很强大

1107

等明年春季的 Creator Update,利用 WSL 做 Ruby 开发,应该没啥问题了,添加了目前缺失的 syscall 支持还有升级 Ubuntu User land 到 16.04

1107 jasl 将本帖设为了精华贴 12月11日 02:38
1107

加个精吧,方便用 Windows 的人,不过还是看好 WSL 的成熟~

另外推荐一个 Terminal 叫 MobaXTerm,这个是我在 Win 下用过最强大的 Terminal 了,比 Cmder 要好用很多(当然也复杂了很多...),缺点就是启动速度慢

1

vagrant 用 ubuntu 原版镜像就行了,改版不知加了什么料。

Spring 开始依赖文件系统的事件,对原生系统是好事,对虚拟机不友好,会出现文件修改应用不自动更新,我不得已放弃虚拟机了。

期待 Ubuntu on Windows 实用起来,gorails 有个教程 https://gorails.com/setup/windows/10

96

有没有人试过 Windows + Jruby 开发 ?

E40b21

不错,相当于运行环境在ubuntu,编辑在win

17759

ctrl + shift + f 应该是和搜狗输入法的简体\繁体切换快捷键冲突了

19780

#8楼 @dami_2015 哇哦,我回去看了一下,这么多是……Thq soooo much.

96

win下也可以用aptanaStudio,是一个eclipse的扩展。也能应付win下的开发。

207

这...我还以为是原生开发经验贴,想进来学习学习,结果点开一看虚拟机...

12楼 已删除
96

收藏一下 这个真的好 哈哈

9800

哈哈。怎么不用ubundows?

96

为了ruby,我入了macbookpro2016

14154

我想请教的是 vagrant ssh 你是怎么链接的

19780

#16楼 @hammer vagrant up 把虚拟机启动后, vagrant ssh远程已启动的虚拟机

29036

端口是可以在vagrant设置转发的吧😏

19780

#18楼 @Canmel 可以,so smart

14154

#17楼 @torvaldsdb windows默认没有 ssh的啊, 我本地是不能直接连接的, 用git-for-win提供的ssh.exe也不可以.

Putty 用vagrant生成的key也不能连接,提示生成的密钥格式不一样。

密钥格式有IETF OpenSSH PuTTYgen ... Putty 转换了一阵也是不行。

vagrant ssh 我连不上啊

14154

而且如果设置了 Vagrant跟宿主机 文件同步,在宿主机用sublime修改文件, Guard是监控不到的的, 因为 Guard 需要用到 linux inotify通知。

也可能我的测试架构是个奇葩

这个坑弄惨我了 😿

1

#21楼 @hammer 现在 spring 也监控不到,无法自动更新。

期待有人测试一下 Ruby on Rails on Ubuntu on Windows 的开发体验。

19780

#20楼 @hammer 下载cmder,就可以在win系统下使用unix命令行了……

96

#22楼 @Rei 感觉应该从里往外挂,走个sshfs 啥的,别从外往里挂了

3216

无论怎么折腾只要用到virtualbox来跑开发环境IO就是个问题

2556

有啥用。。。

96

windows10用Docker也不错,有Docker for windows

21380

#25楼 @heimirror 会用vim的话可以不用共享目录,vboxsf 共享文件系统的速度的确是个坑。上回我手贱在共享目录下跑了 npm install,根本跑不完╮(╯_╰)╭

2880

Docker for Windows 坑也挺多的, 例如可执行文件的属性没有啦, git clone 回来的换行符被转了啊之类的

775

#29楼 @luikore 确实docker-machine更好,更稳定

9695

这篇文章和我的思路一样,不过我的思路更糙快猛一些:开一个虚拟机,共享文件系统,在里面建立Rails项目,Windows里一个subl加一个putty就能做开发、调试。

至于WSL,在刚出的时候我就尝试过新建并运行Rails项目,遇到了很多导致失败的原因;后来社区有修复,但还有一部分原因是WSL自身造成的,所以问题依旧;随着时间我相信WSL会越来越好,但显然,在Rails in WSL的道路上还有非常多的坑要踩。

26478

新手真的不建议用windows开发,除非你是技术大牛,在开发过程中会有很多很多莫名其妙的问题别人没遇到过

9313d8

😁 😁 ubuntu14.03-server-rails.box 开眼界了~

60a8f6

新手不建议用windows开发rails +1

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册