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

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

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

配置流程

1、box镜像的选择

本文中,笔者由于网站服务器系统为centos7.2,所以理所应当的选择了centos的镜像。(镜像官网,支持搜索配置:https://app.vagrantup.com/boxes/search。 关于vagrant,此文中不再赘述,网上关于vagrant+virtualbox的资料很多,基本配置也非常简单省事)。

起初,笔者随意下载了一个下载量高的centos,结果发现内部配置有很多的问题,主要问题是很多软件的版本过于老旧且更新很麻烦,需要手动解决很多的依赖(有的甚至还解决不了,于是果断弃坑)。后来换了一个官方镜像,于是有了很大的改观。(安利一下我用的镜像:https://app.vagrantup.com/centos/boxes/7

在选择镜像的时候要注意以下几点:

•如没有十足的把握,请尽量选择较新且完整版的镜像(尽量不要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 xxx@xxx.com
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=https://cache.ruby-china.org/pub/ruby" > ~/.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的基本初始设置,可以参照:http://www.jb51.net/article/108930.htm
关于mariadb的远程访问问题,可以参照下面链接,写的很简洁清晰(不过除了开发机以外的情况下将远程权限赋予全部ip是很不安全的):http://www.jb51.net/article/72426.htm

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(http://www.jb51.net/article/113316.htm)
 操作如下:

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地址链接,就像连接你的服务器一样。

(0)

相关推荐

  • Oracle VM VirtualBox 在linux系统下安装增强插件实现访问主机的共享文档方法

    一.安装增强插件 1 选择"设备"--"安装增强功能",然后可以看到在虚拟机的光驱中自动加载了增强iso的文件(VBoxGuestAdditions.iso) 2在linux 中挂载光驱 mount /dev/cdrom /mnt 3在将/mnt文件中的所有文件拷在/tmp目录下 cp -r /mnt/* /tmp 4在安装增强文件之前安装相应的包,安装后重启 yum install kernel yum install kernel-headers kernel-

  • VirtualBox主机虚拟机互通的实现方法

    VirtualBox主机虚拟机互通的实现方法,供大家参考,具体内容如下 首先使用的是桥接模式,桥接模式相当于是使用Hub来把主机以及虚拟机进行关联: 然后就是选择"界面名称",这里吐槽一下,这里其实是"Interface Name",Interface代表的是网卡的接口,如果一个设备,通常是笔记本会有多个网卡,可能是Wireless网卡,可能是Ethernnet网卡,这里注意这里选择的的网卡类型一定要和你当前联网(内网/外网)的网卡一致:如果你的设备连接的是无线的,

  • VirtualBox安装CentOS实现鼠标自动切换和复制粘贴功能

    1. 输入命令: cd /media 2. 输入命令: sh VBoxLinuxAdditions.run 3. 可能会出现错误: 解决的办法是依次输入命令: yum install update yum update kernel yum update kernel-devel yum install kernel-headers yum install gcc yum install gcc make 然后再运行: sh VBoxLinuxAdditions.run 就可以了: 以上所述是小

  • VirtualBox的Linux虚拟机文本模式和图形模式的切换问题

    1.默认开机进入文本模式 如果想让开机自动进纯文本模式, 修改/etc/inittab 找到其中的 id:5:initdefault: 这行指示启动时的运行级是5,也就是图形模式 改成3就是文本模式了 id:3:initdefault: 这是因为Linux操作系统有六种不同的运行级(run level),在不同的运行级下,系统有着不同的状态,这六种运行级分别为: 0:停机(记住不要把initdefault 设置为0,因为这样会使Linux无法启动) 1:单用户模式,就像Win9X下的安全模式.

  • VirtualBox下Centos6.8网络配置教程

    win10环境下,VirtualBox和Centos6.8已经按照完毕,下面配置Centos6.8网络. 1.设置VirtualBox为桥接模式,具体的有三种联网方法,我们参考http://www.cnblogs.com/jasmine-Jobs/p/5928218.html 2.桥接模式使得宿主机和虚拟机在同一个网段内工作,ipconfig查看宿主机的ip,子网掩码,网关,我的宿主机连接的是无线网. 3.ifconfig 查看虚拟的的IP地址 4.修改网络配置 把ip地址设置为静态地址,子网掩

  • VirtualBox 在Centos 7 中安装增强功能图解 (共享文件夹)

    1.分配光驱 2.安装相关依赖包 yum install -y bzip2 gcc gcc-devel gcc-c++ gcc-c++-devel make kernel-d 3.创建临时文件夹 mkdir /mnt/cdrom 4.挂载并安装 mount -t auto -r /dev/cdrom /mnt/cdrom cd /mnt/cdrom ./VBoxLinuxAdditions.run 5.关机并添加共享文件夹 重启后,使用mount查看共享的目录(默认会加上"sf_"前缀

  • VirtualBox 错误:This kernel requires the following features not present on the CPU

    VirtualBox 错误:This kernel requires the following features not present on the CPU 使用VirtualBox安装虚拟机系统时候经常会遇到以下错误 This kernel requires the following features not present on the CPU: Unable to boot – please use a kernel appropriate for your CPU 解决方式: 关闭

  • VirtualBox安装Centos6.8出现E_INVALIDARG(0x80070057)的解决方法

    VirtualBox使用已有的虚拟硬盘出错: 问题描述:UUID已经存在 Cannot register the hard disk 'E:\system_iso\centos6.8.vdi' {05f096aa-67fc-4191-983d-1ed00fc6cce9} because a hard disk 'E:\system_iso\centos68_02\centos6.8.vdi' with UUID {05f096aa-67fc-4191-983d-1ed00fc6cce9} alr

  • win10下使用virtualbox + vagrant配置ruby开发机环境

    在写本文前,笔者已经尝试了多种其他的替代方法,例如wmware虚拟机安装kylin.然而发现总是还有各种问题.经大佬指点安装了virtualbox + vagrant.于是发现配置起来如此简单.接下来笔者将详细阐述. (注:笔者自己的服务器上的配置是centos7.2 + ruby2.3.4 + mariadb + redis,自己的笔记本为win10,另外,很多网上的类似文章都写于很长时间以前,很多内容现在已经不适用,甚至很多关键的环节还不讲清楚,导致笔者配置初期踩了很多的坑.所以写下此文,总

  • Win10下Android App安装配置开发环境

    前言:要进行一个Android App的开发,需要使用到Java.Android SDK.ADT以及一些软件开发工具IDE的帮助.本文将首先介绍这些工具的安装以及配置,以完成Android App开发的准备工作. 一.安装配置Java开发运行环境JDK/JRE Android App开发需要用到Java语言,要使用Java语言进行开发,需要先安装JDK并配置相关的环境变量.具体步骤如下: (1)在oracle官网下载JDK安装包:下载地址 (2)安装JDK:运行下载好的JDK安装包,依照安装提示

  • 在win10上使用mingw64编译器配置Rust开发环境和idea 配置Rust 插件

    目录 1.安装前的准备 2.安装 mingw64 2.1.编译器 mingw 与 visual studio 之间的选择 2.2.下载 2.3.安装 2.4.配置 2.5.测试 3.安装 Rust 3.1 .从Rust的官网下载 rustup-init 3.2.配置国内镜像地址 3.3.运行 rustup-init 3.4.验证 3.5.rustup 常用命令 4.cargo 配置 4.1.配置 cargo 国内镜像 4.2.cargo 基础命令 5.hello world 6.idea 配置

  • Mac OSX下使用MAMP安装配置PHP开发环境

    一.简单介绍: PHP 页需要通过 Web 服务器处理.因此,要在 PHP 进行开发,您需要访问支持 PHP 的 Web 服务器和 MySQL 数据库.phpMyAdmin 也很实用,它是 MySQL 的图形接口.这三个组件是可用于开发.测试和部署 Web 应用程序的开放源代码软件.并且都是免费的.Apache Web 服务器和 PHP 都是 Mac OS X 中预装的.但它们在默认情况下并未启用.并且,预装版的 PHP 缺少许多实用功能,并且您需要单独安装和配置 MySQL.除非您能在 Ter

  • 在EditPlus中配置Perl开发编译环境

    偶尔写写Perl脚本,用Eclipse打开太慢,NotePad吧,色彩又太单调了,NotePad++无疑是不一个不错的选择,但当要输入中文注释时,经常卡壳非常不爽,最后还是选择用用Editplus, 写写Perl或Python脚本,非常不错. 1. 下载安装Perl URL: http://www.activestate.com/ 下载与操作系统匹配的Version,Next>>逐步安装,再用perl -v验证是否安装成功 2. 下载安装Editplus https://www.editplu

  • CentOS中配置Ruby on Rails环境

    详细安装步骤: 一.更新Python centos 中默认安装的python是2.4的版本,因为新版的rails需要提供nodejs的相关支持,需要更新python,更新文章可以直接移步到这个链接 http://www.tomtalk.net/wiki/Python 复制代码 代码如下: yum install -y bzip2*           #nodejs 0.8.5需要,请安装python前,先安装此模块.   wget http://www.python.org/ftp/pytho

  • Windows IIS配置Jsp和php环境方法

    一.IIS用于ASP程序的处理,但是想要它可以处理JSP和php呢?最容易想到的就是JSP安装TOMCAT就好了,TOMCAT默认的端口是8080,默认安装好后的成功页面:http://127.0.0.1:8080/index.jsp;php用Apache就好了,配置好了就可以了.有集成了Mysql和MysqlAdmin的AppServ.Apache和IIS都是默认用80端口,那它们就有冲突,只能启动其中一个,也就是支持php就不支持asp了.对于jsp有人把它和IIS整合,也有人和Apache

  • CentOS 7下配置Ruby语言开发环境的方法教程

    本文跟大家分享的是在CentOS 7下配置Ruby语言开发环境的方法教程,分享出来供大家参考学习,下面来看看详细的介绍: 安装Ruby 2.2 CentOS7存储库中的Ruby版本为2.0,但如果需要,可以使用RPM软件包安装2.2 1.添加CentOS SCLo软件集合存储库 [root@linuxprobe ~]# yum -y install centos-release-scl-rh centos-release-scl # set [priority=10] [root@linuxpr

  • Win10下配置VScode远程开发ssh-remote(免密登录)

    目录 问题背景: 环境准备: 配置步骤: 1.在本地配置服务器的免密登录 2.VScode上的配置 问题背景: 在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,而我服务器上的项目只能在Jupyter Notebook上编写(或许可以在其他IDE上写,但我不知道).而我们喜欢用的IDE比如Pycharm.轻量级的VScode,如何在本地的IDE上使用服务器的项目且快速.方便地写代码呢?这就是今天要详细介绍的VScode配置免密ssh+remote,一旦连接成功,我们就可以

随机推荐