缘由
最近折腾OS X下搭建开发环境烦了,每次等半天的编译,然后版本不同说不定还会导致编译出错,然后后得手动修代码,而像homebrew
这种包管理只适合安装工具链,根本不适合安装nginx
`php`mysql
这种应用,homebrew
里的 mariadb 为了能安装,不得不增加-DWITHOUT-TOKUDB
这种东西,而且根本没法搞上jemalloc
这么好的内存管理器,所以就准备使用 Vagrant 来搭建开发环境。
可是看了看 Vagrant 官方镜像包,网速国内根本没法看,而且 CentOS 很少,看了看官方的文档,原来做Base Box
也并不难,那就搞了一个自己的,顺便记录下自己踩的坑。
安装 CentOS
我这里安装的是 CentOS 6.7-minimal 版本,说到这个,确实不得不夸红帽公司,为什么人家的发行版 RHEL 被这么推崇,连带着 CentOS 也这么受到企业级欢迎,因为人家投入了大量人手维护内核,先不说他们的商业授权支持。一个系统整整10年的支持期,RHEL6系列会一直支持到2020年,一个2.6版本的古老内核,能够支持最新的网卡驱动,甚至还能安装Docker
这种明确必须3.10以上内核的版本,为什么?因为人家一个内核打包上百次,所有的驱动、功能被统统放到了老内核里,其他系统哪个能够做到,其他任何一个发行版都没有2.6内核支持的Docker
。
扯远了,下面跟着官方文档走,先创建一个虚拟机,内存512M就足够,硬盘扩展到2T,记得选择动态分配,禁用 USB 和 Audio ,但是512M内存是不能手动分区的,默认是创建一个500M的 /boot 分区,剩余创建 LVM 逻辑卷组,然后在里面创建一个2倍内存的 swap 分区,剩余空间分给 / 分区。
其中有几点注意:
Root 密码设置为 vagrant
创建一个 vagrant 用户,密码为 vagrant
在
~/.ssh/authorized_keys
放置Insecure Keypair,并且配置权限visudo
后vagrant ALL=(ALL) NOPASSWD: ALL
,并且注释掉DEFAULT requiredtty
建议在
/etc/ssh/sshd_config
里使用UseDNS no
注意:insecure keypair将会在第一次vagrant up
的时候被自动替换为随机生成的密钥对
然后,安装完毕后,记得yum groupinstall "Development Tools"
,并且安装VirtualBox Addition tools
,其中会出现Building OpenGL failed
,没有影响的。
最后,记住删除网络配置文件,包括 udev 和 /etc/sysconfig/network-script 里的,以防出现问题。
导出Box
vagrant package --name VirtualBox虚拟机名
补充一下删除网络配置的命令
rm -rf /etc/udev/rules.d/70-persistent-net.rules
sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth0
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。