为什么80%的码农都做不了架构师?>>>   

有人说 Ubuntu, 有人说 Linux Mint, 也有人偏好 MacOS, 甚至用 Windows。

到底应该怎么选择适合 Rails 开发的操作系统呢?

部署环境是什么系统?

选择与部署环境实用的操作系统一致是最好的策略, 可以降低因兼容性造成 bug 的可能性。

例如, 生产环境使用的是 Ubuntu Server 16.04, 最好的开发环境肯定是 Ubuntu Desktop 16.04。

Ruby 版本

Linux 发行版大都预装某个版本的 Ruby, 或者可以通过自带的包管理器来安装。

核对 Ruby 版本, 确保安装的 Ruby 版本属于 Rails 支持的版本。

使用 RVM 或 rbenv, 以便安装新版本的 Ruby。 Ruby 包版本管理器的作用不仅仅是安装最新的 Ruby,还能够方便在新旧版本直接切换,以及管理 gem 集合。

如果开发的代码将被部署到服务器上, 使用部署环境支持的 Ruby 版本。

片面追求使用最新版本可能导致代码不工作。

运行环境与编辑环境隔离

把运行环境和开发编辑环境隔离是一个好主意,可以用到熟悉的开发工具/IDE。

如果不想使用 Linux, 或者没有熟悉的 IDE, 还有另一个选择: 使用 Vagrant, 安装 Ubuntu Server(或选定的其它系统), 然后挂载本地开发目录。 只需在 Vagrant 虚拟机里运行命令, 在宿主机(可以是 Windows)上进行编码开发工作。

但是, 对于充满求知欲(以及决心克服困难)的初学者, 建议直接使用一个 Linux 发行版作为开发环境, 以便能够学习解决服务器环境可能遇到的各种问题。

Windows ?

是否选择 Windows,是一个容易困惑的问题。

别用 Windows————除非要部署在 Windows 环境。 有些 gem 在 Windows 系统下不能正常工作。

如果不知道部署的目标环境是什么系统,建立一个虚拟的部署环境。 在 Windows 上安装 VirtualBox, 在其中建立 Linux 虚拟机。

用这种方式,构建出开发部署的流程。

另一种思路:Docker

如果仅作 Ruby 开发, Docker 有时候比 VirtualBox 方便。

Docker 能够更容易建立所需任何系统的运行环境。 可以在任何宿主机上轻松建立出 Ubuntu Server 的容器来运行 Rails 应用。

使用虚拟机需要关注的主要问题是宿主机与虚拟机的代码和操作同步。 使用 Docker 可以忽略哪些代码同步的工作, 如 FTP/SFTP/RSYNC 等。

Docker Toolbox for Windows 基于 VirtualBox 或 Hyper-V,支持在 Windows 上运行 Linux 内核。

总结

  • 保持与服务器一致的运行环境
  • 关注并管理 Ruby 版本
  • 使用熟悉的 IDE
  • 构建“开发-部署”流程
  • 使用虚拟环境,如果有必要

原创文章,原文地址

转载于:https://my.oschina.net/lax/blog/918585

选择适合 Rails 开发的操作系统相关推荐

  1. 如何选择一台适合Java开发的电脑

    前言 最近在群里老有同学求推荐适合Java开发用的电脑,所以胖哥就用我知道的电脑知识来帮助大家选择适合开发的电脑配置.因为我自己家里的主机已经带不动两个 IDEA 了,更别提开个 Docker 啥了, ...

  2. 手机游戏开发中如何选择适合的纹理格式

    手机游戏开发中如何选择适合的纹理格式 为毛要写这个 本来觉得像这样的问题,是无法归类的,因为不同的项目有不同的需求,但今天因为quick论坛中的一个技术疑问贴,钩起了我整理这篇文章的兴趣 http:/ ...

  3. 新人小白如何选择编程语言和开发方向(非常详细)初学者避坑指南!!

    如果你听说IT编程很赚钱,想入坑,不想入行,那你可以来看一看这篇文章!! 有些坑你应该没入之前就就应该知道! 全世界的编程语言有 600 多种,TIOBE 统计的有 100 种,参与排名的有 50 种 ...

  4. 初学者避坑指南:如何选择编程语言和开发方向(非常详细)

    前言 全世界的编程语言有 600 多种,TIOBE 统计的有 100 种,参与排名的有 50 种,前 20 种是常用的,它们目前正在流行,或者曾经非常流行. 图1:2023年 6月份编程语言排名 TO ...

  5. 初学者如何选择编程语言和开发方向(非常详细)

    全世界的编程语言有 600 多种,TIOBE 统计的有 100 种,参与排名的有 50 种,前 20 种是常用的,它们目前正在流行,或者曾经非常流行. 图1:2021 年 10 月份编程语言排名 TO ...

  6. 如何正确的选择适合自己的WEB报表工具

    WEB报表工具,从采用的技术可分为:ActiveX报表系统..NET报表系统及纯JAVA报表系统.目前各类报表都有很多选择,用户如何选择适合自己企业的WEB报表工具? 本文从用户角度分析如何选择WEB ...

  7. 爱上Android之选择您的开发工具

    本文摘自人民邮电出版社异步社区<爱上Android> 京东地址:item.jd.com/12144527.ht- 试读地址:www.epubit.com.cn/book/detail- 第 ...

  8. 嵌入式工程师该如何选择合适的开发系统

    在进入正题之前,需要先理解"嵌入"的概念,在工程师来看主要从以下3个方面入手. 1.从硬件上,将基于CPU的处围器件整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CP ...

  9. Mac 更适合做开发?从零把 Mac 打造成开发利器

    点击我爱计算机视觉标星,更快获取CVML新技术 本文作者:guoweiye,腾讯 PCG 开发工程师 很多人都说 Mac 比 Windows 更适合做开发,那关键是要把 Mac 配置好,下面就来和大家 ...

最新文章

  1. C++拾趣——类构造函数的隐式转换
  2. 独家|测量、建议、快速上手!你所使用的Python对象占用了多少内存?(附代码)...
  3. Android中Activity的启动流程和组织管理方式(Backstack、Task)
  4. 使用Python解析nginx日志文件
  5. HTML 5.2 新特性介绍
  6. IOS 6 之后 Required background modes
  7. Linux中防火墙命令笔记
  8. primefaces_使用PrimeFaces开发数据导出实用程序
  9. r语言清除变量_如何优雅地计算多变量 | R语言进阶
  10. Windows Phone 7 定义和使用字典资源(ResourceDictionary)
  11. 纸质书,电子书,你会选择通过哪一种途径学习?
  12. Pytorch专题实战——前馈神经网络(Feed-Forward Neural Network)
  13. numpy.argmin 使用
  14. 大型网站应用之海量数据和高并发解决方案总结一二
  15. 推荐 几个神级 Java 开源学习项目
  16. 通过python获取Arduino雨滴传感器模块的数据(PyMata3+MySQL)
  17. 过滤微信特殊字符名称
  18. 处理UNICODE下【中文乱码】异常
  19. xpwifi热点设置android,笔记本xp系统wifi热点设置教程(图文)
  20. 宁银消费金融来了 母行授信80亿,全国急招人

热门文章

  1. centos 修改开机画面
  2. linux shell 清空文件,查看文件,写入文件
  3. Spring框架Runtime介绍(导包)
  4. javascript实现jsonp跨域问题+原理
  5. dedecns 表结构
  6. 32/64位平台printf uint64的方法
  7. iphone中结束电话后返回自己的应用
  8. vb添加GIF动态图片
  9. IT人的素质 设计杂谈
  10. 华为的数字化转型与数据治理