另类的开发环境搭建
Posted huangxiaoxue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了另类的开发环境搭建相关的知识,希望对你有一定的参考价值。
闲来无事,心血来潮,写一篇程序员开发环境的搭建!比较low,勿怪!
每一个刚入门的程序员都会有一个自己的开发环境,我是做python开发,我对开发环境的需求是:
一、win10为电脑主系统
安装常用软件方便
比如写代码用pycharm,文本编辑用sublime,其实这两个工具在centos7里折腾一下也好装。但是连接数据库用的Navicat Premium 12、远程连接linux系统的Xshell在centos7或Ubuntu下就不那么好装,Navicat permium用官方的linux版本装好后,字体太乱了,没法调。
office在linux环境下可用WPS代替,但是QQ在linux环境下用wineQQ代替时,一堆bug,要不就乱码,要不就有些功能不能用,曾经用笔记本装好Ubuntu后,折腾了好几天的wineQQ,后来放弃了。网页版QQ,历史消息又不同步,这麻花藤太擦蛋了,花你千分之一的资金搞个团队开发个Linux版QQ就那么难吗!反正也搞了Mac版的QQ,linux下的QQ也是很有市场的。
企业微信也是一样,除了windows版、Mac版,也没有Linux版本,只能用手机版。但有时微信、QQ和朋友、同事聊天、收个文件、把程序的异常截图发到QQ群里或微信群,偶尔看看QQ群里的老司机开车,等等这些需求,在centos、Ubuntu等等环境下非常不方便。
而且我还喜欢玩LOL,Linux下就没法玩,没有linux版的LOL安装包,Mac又只能玩美服,骂人只能飚英语。Linux系统下用虚拟机装win10,再在win10下玩LOL又卡的要命。
二、centos7为程序运行环境
因为生产环境一般为centos环境,为了保持程序的环境一致性,不用为了因为一些系统库文件或程序依赖包等等导致程序运行异常,所以程序必须在centos7环境下运行,同时保持Linux的手感。
而且程序在centos7环境下遇到bug时,网上随便一搜,百度、Google一大把的文档,能够快速解决问题。而windows环境下运行程序出现bug时,如果是一些和windows环境相关的比较奇葩或很少见的bug,网上的文档相比Linux会少一些。
windows下的程序依赖包、系统库文件相比linux也比较难找,找到后安装出现bug时也比较难排错。
综上所述,我既想要win10环境,又想要centos环境,所以选择win10主系统 + 虚拟机centos7。我的方法是把win10上的文件夹挂载到虚拟机的centos7里,用git、svn同步太费劲。在win10下用pycharm编辑好代码后,用xshell连接虚拟机里的centos7,进入到挂载目录执行代码就行。
如果需要搭建一个集群环境需要多台centos7,或者多个项目需要用到不同版本的python环境,可以在虚拟机的centos7下使用docker,目前一直用此方法,还能节省点内存。
1.先在win10下找个文件夹存放项目,在将文件夹设置成共享文件夹,设置好权限。比如我的项目存放在win10的D盘下的application里,win10 IP为192.168.190.1
2.然后把win10上的application文件夹挂载到虚拟机的centos7里。(我挂载到了/data/application下)
# 挂载 mount -t cifs -o username=administrator,password=123.com,vers=2.0,nobrl //192.168.190.1/application(win10共享文件夹路径) /data/application/(centos7 挂载点路径)
3.然后在centos环境下安装docker,起两个容器,一个是容器装centos7,一个装mysql。把虚拟机里的目录挂载到容器里,并且映射端口。(docker折腾了一个星期)
我的项目名叫archery,容器名也就叫archery,运行centos7,然后把虚拟机centos7下的/data/application目录挂载到archery容器里的/data/application下,容器MySQL5.7安装的MySQL,项目用的数据库使用容器MySQL5.7。
archery容器的22号端口映射的虚拟机的10026端口,用于xshell远程连接。
archery容器的9000端口映射到虚拟机的9026端口,这样,在win10下就可以通过浏览器访问虚拟机的9026端口而访问容器里的服务。
4.用xshell连接到容器里运行服务。
5.在win10下用浏览器访问虚拟机的9026端口,虚拟机IP是192.168.190.134
6.再来个全部都有的
总结
以前一直用win10做主系统,用VMware安装centos7,然后把centos7里的项目文件夹用samba或其它软件共享到win10下,再用pycharm写代码,写完后用xshell连接centos7,在centos7里运行服务。
但是发现每次切换pycharm时,pycharm都特别卡,后来发现由于项目文件夹是从linux系统映射到windows里的,pycharm每次切换时都会自动扫描项目文件夹,而共享的文件夹,当里面的项目文件特别多时扫描起来会非常卡,不如原生的系统文件夹。
目前见到的环境有以下几种:
(1)在win10下搭建虚拟机centos,开启图形界面,安装pycharm,直接在centos里开发。虚拟机太吃内存、CPU了,玩个QQ、微信还得切来切去。
(2)直接在centos下用vim编辑器开发,写脚本可以,写代码比较考验能力,缩进、括号啥的都得注意。
(3)在win10下安装docker,再用docker起centos。我还没试过,觉得也可以。
(4)直接在win10下安装python环境开发,需要考虑到环境一致性问题。
(5)在笔记本上直接安装centos7、Ubuntu、黑苹果系统,在需要使用到windows上的软件时,要不就使用虚拟机装个windows,再在windows里安装软件,要不就使用带有wine虚拟的windows环境的安装软件,比如wineQQ等等,需要折腾很久,效果还不咋滴。
(6)电脑安装双系统,甚至三系统,普遍的是Linux+windows双系统,写代码是用linux,娱乐时用windows,但是鱼和熊掌不可兼得。
(7)有钱的土豪们直接上Mac苹果本,Mac是类Unix系统,不用太担心环境一致性问题,微信、QQ、pycharm等等常用软件都有Mac版的。如果还想玩LOL可以装双系统,但是要能折腾,最好别玩,或者再买一台游戏本,专门玩游戏。
以上是关于另类的开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章