详情

首页手游攻略 win10下使用virtualbox + vagrant配置ruby开发机环境实用指南

win10下使用virtualbox + vagrant配置ruby开发机环境实用指南

佚名 2026-09-01 08:00:01

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“win10下采用virtualbox + vagrant配置ruby开发……”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

在这个场景下,在写本文前,笔者已经尝试了多种其他的替代方法,比如wmware虚拟机安装kylin。然而发现总是还有各种问题。经大佬指点安装了virtualbox + vagrant。于是发现设置起来如此轻松。下面笔者将详细阐述。

(注:笔者自己的服务器上的设置是centos7.2 + ruby2.3.4 + mariadb + redis,自己的笔记本为win10,另外,很多网上的类似文章都写于很长时间以前,很多内容现在已经不适用,甚至很多关键的环节还不讲清楚,导致笔者设置初期踩了很多的坑。所以写下此文,总结经验)

设置流程

1、box镜像的选择

落到代码里,本下文,笔者由于网站服务器系统为centos7.2,所以理所应当的选择了centos的镜像。(镜像官网,兼容搜索设置:(链接已移除)。 关于vagrant,此下文不再赘述,网上关于vagrant+virtualbox的资料很多,基本设置也很轻松省事)。

实际处理时,起初,笔者随意下载了一个下载量高的centos,结果发现内部设置有很多的问题,主要问题是很多软件的版本过于老旧且更新很麻烦,需手动解决很多的依赖(有的甚至还解决不了,于是果断弃坑)。后来换了一个官方镜像,于是有了很大的改观。(安利一下我用的镜像:(链接已移除))

在选择镜像的时候需留意以下几点:

理解这一步时,•如没有十足的把握,请尽量选择较新且完整版的镜像(尽量不要Minimal)
落到代码里,•如果网络条件允许(比如在中国大陆之外)的话,能够直接按照页面上的方法设置。如果网络条件不允许或者速度极慢,能够先按照上面init你的vagrant,随后得到box的下载地址,中断init。然后用迅雷下载此地址到本地再设置,能够大大节省时间。

2、安装git

作为开发机,git是必不可少的,然而一开始也被git坑了好长时间。
首先直接命令安装

yum install git

在这个场景下,安装时务必注意版本,版本最好不要低于1.8(之前另一个系统git1.7,很多网站上的repo无法正常访问)
下面就是设置git的一些全局设置


git config --global user.name "HansBug"
git config --global user.email [email protected]
git config credential.helper 'cache --timeout=7200'

从实现思路看,三条设置依次为用户名,用户邮箱和记住密码(本人较懒,不想设置ssh)有效时间(单位秒,例子中为2小时)

3、安装rvm

作为rails环境的搭建,rvm是很重要的一环。
首先安装rvm(如果本机没有curl或者出现其他依赖问题请先解决)

curl -L get.rvm.io | bash -s stable

安装完后如果看到如下所示的提示的话


 * WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/vagrant/.bash_profile':

   source ~/.profile

则按照他说的做就好了。

实际处理时,安装完毕后有一个很重要的操作——将原镜像地址换掉。原镜像地址由于某些神秘的原因(你懂得),下面ruby下载速度奇慢,而且还不稳定。
于是果断执行命令

echo "ruby_url=(链接已移除)" > ~/.rvm/user/db

4、安装ruby

rvm设置完毕之后,下一步就是安装ruby(我采用的是2.3.4版本)

rvm install 2.3.4

然后安装完之后设置为默认版本

rvm use 2.3.4 --default

5、修改gem source

理解这一步时,一般来说,ruby安装完之后,gem也就有了。但是因为一些神秘的原因(你懂得),gem原本的source常常下载速度极慢。
首先看一下现有的gem source

gem source -l

反馈是


*** CURRENT SOURCES ***

https://rubygems.org/

从实现思路看,这个是rubygem原有的镜像,在大陆访问速度比较慢。我们能够换上ruby-china提供的镜像。操作如下所示:


gem source -r https://rubygems.org/
gem source -a https://gems.ruby-china.org/

依次是删除原有镜像地址和新建新镜像地址。到此,gem设置完毕

6、安装rails和bundler

若之前都设置妥善了的话,这一步其实很轻松
理解这一步时,首先(中间可能会出现部分依赖性问题,能够借助baidu和google自行解决,一般都能找到相关资料)

gem install rails

确认安装完毕后,运行

gem install bundler

7、安装mariadb和redis

结合项目来看,其实mariadb在centos上的安装很轻松,直接 yum -y install mariadb mariadb-server mysql-devel 即可(最后一个要是不安装的话,等会bundle install时会出现依赖错误)。

落到代码里,随后就能够 sudo service mariadb start来启动数据库了,十分便于。(关于数据库的设置密码等问题,能够自行百度相关资料,此处不再赘述)

从实现思路看,redis的话,在确保EPEL安装了的情况下,也能够直接yum -y install redis,系统服务也设置好了,很便于。(EPEL的安装请看文末问题区2)
注:在正式部署项目之前,请务必按照development的方式将redis和mariadb的相关设置设置好

关于mariadb的基本初始设置,能够参照:(链接已移除)
在这个场景下,关于mariadb的远程访问问题,能够参照下面链接,写的很简洁清晰(不过除了开发机以外的情况下将远程权限赋予全部ip是很不安全的):(链接已移除)

8、部署项目

首先在项目目录下初始化仓库同时添加远程仓库(后面写上你的git地址)


git init
git remote add origin *****************.git

然后
git pull origin master

将项目安置好,随后下面就是rails项目的一般性流程了


bundle install
rails db:migrate
rails db:seed

(注:若在bundle install的过程中遇到相关依赖性问题的话,能够首先查看错误说明,很多错误说明中已经告诉了你如何操作,需安装什么包。如果没能解决的话请百度或google)
最后一步,

rails server -b 0.0.0.0

从实现思路看,启动rails服务器,随后我们就能够直接借助3000端口访问本机的网站啦!大功告成

问题区

1、vagrant无法与主机共享文件夹

实际处理时,我这边之前出现过一个问题,将设置文件(Vagrantfile)里面的这行注释去掉

config.vm.synced_folder "data", "/vagrant_data"

启用文件夹共享时,出现了错误


Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant_data /vagrant_data

The error output from the command was:

mount: unknown filesystem type 'vboxsf'

这个问题解决方案已经知道。其实很轻松,就是缺一个插件,装上就ok

vagrant plugin install vagrant-vbguest

然后reload,问题解决。

2、部分软件包无法找到

从实现思路看,这种情况是由于centos7本身带的软件包同时不多。所以我们需安装EPEL((链接已移除))
操作如下所示:


yum -y install epel-release
yum repolist

实际处理时,依次是安装epel和刷新软件包列表。我们能够看到,软件包数量增加了很多。

3、将虚拟机映射至ip

从实现思路看,其实这一步也很轻松,将Vagrantfile里面的这一行注释去掉即可(同时也请保证局域网内ip地址没有冲突,如有冲突,请更换一个ip。另,若是冲突的话,一般在vagrant up & reload的过程中会报错)
config.vm.network "private_network", ip: "192.168.33.10"

理解这一步时,随后网站就能够借助192.168.33.10:3000访问,数据库能够用192.168.33.10链接,甚至也能够用putty借助192.168.33.10的ip地址链接,就像连接你的服务器一样。

您可能感兴趣的文章:

  • Ubuntu系统中部署Vagrant和VirtualBox的图文教程
  • 手把手教你采用 virtualBox 让虚拟机连接网络的教程
  • 详解VirtualBox + CentOS 虚拟机网卡设置
  • VirtualBox虚拟机安装Ubuntu详细教程(图文)
  • vagrant+virtualBox构建虚拟机的方法

相关资讯
点击查看更多
游戏推荐
推荐专题
热门阅读
推荐下载