在使用Vagrant创建虚拟机时,我们要使用CentOS的box来创建虚拟机,而官方提供的box是原版的box,创建完成后还需要自己手动配置环境。我们可以创建一个已经装载好自己需要的常用软件依赖的box,然后将这个box重复使用。
先讲一下相关知识:
Linux很多应用都安装在/usr/local下面(usr指的是Unix System Resource,不是指user),而/usr/bin下面的都是系统预装的可执行程序(python2就在这里面),会随着系统升级而改变;如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin
这里/usr/local/bin优先于/usr/bin。
安装centos7原版虚拟机方法请参考实验一第四条:安装Vagrant,并使用Vagrant安装CentOS
安装完成后使用XShell以root用户身份登录
然后update一下:yum -y update
完成后重启一下:reboot,重启完成后重新连进去
由于可以使用PyCharm位每个项目都创建一个唯一的CentOS虚拟机,所以我们在这里直接装原版Python3:
安装方法可参考之前的实验(直接装在/usr/bin目录下,并将python软链直接指向python3,然后修复yum命令)
或者参考该博文(装在/usr/local/bin目录下,把用户自定义的配置放入/etc/profile.d/目录中):
CentOS7安装Python3环境(无需修复yum命令) – 小武的兴趣部落 – CSDN博客
注意:
“3.7.0”要换成“3.6.6”
安装常用软件:
yum -y install git zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel epel-release openssl-devel kernel-devel gcc
安装pip:
yum -y install python-pip
更新pip:
pip install --upgrade pip
安装flask和Jinja2:
pip install flask jinja2
至此,我们就已经制作了一个带有Python3环境的CentOS虚拟机了。
先关闭刚刚创建的虚拟机
然后以管理员身份打开cmd,进入刚刚创建的虚拟机的Vagrantfile所在的文件夹
执行以下语句:
vagrant package
完成后便会在该目录下生成一个“package.box”,这个box即为打包好当前环境的box
现在将该box加载到vagrant的box list中:
vagrant box add --name 'my-virtualbox' package.box
看是否添加成功:
vagrant box list
新建一个文件夹,用来存放init该box后产生的Vagrantfile文件:
cd ..
mkdir myCentOS
cd myCentOS
123
Init该box:
vagrant init my-virtualbox
完成后便可在myCentOS文件夹中就可以看到自己创建的box的Vagrantfile文件。