如何将linux用在开发环境中的

1.我为什么要写这篇文章

  一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件费心费力的事,而且会经常出现一些莫名其妙的问题,以我自己的使用经验觉得要想用linux做开发环境,你要了解每个软件,不然出现一些问题就很难解决,其他不说,就是光搞好驱动问题就让人蛋疼了。

  我的电脑装了linux之后一直高温不下,在网上找了一些方法,关掉独显也好不了多少,开机2个小时温度就飙到70-90度,试过很多发行版,debian,ubuntu,centos,fedora均没解决问题,至于那些gentoo之类的光看评论就吓尿了,每次都要折腾好久的驱动问题,还有些系统的源都被党国屏蔽了,如果要将驱动,开发环境,办公使用的软件折腾完真的是一件费心费力的事,而且只能使用web qq, wineqq还是那么老的版本也不好用, bclode经常登录不上去,报未知错误,由于工作的需要,我注定不适合完全linux办公环境。但是作为一个程序员linux的使用和排错能力还是要有的,于是我今天就分享我使用的方式。

2.windows + 虚拟机

  在虚拟机里面装linux是很普遍的,我很多同事为了学习就在虚拟机里面装了linux,没事的时候倒腾两下,但是并没有用到实际工作中去,于是我就想为何不将我们的代码,服务放到linux虚拟机里面去,然后用windows访问里面的服务,代码可以在windows下开发,部署放到linux里,我觉得这样做有以下好处:

  1.跟生产环境同步,保证自己的代码可以在linux下运行。

  2.移植方便,直接把虚拟机文件打包考到另外一台电脑上面就可以使用了。

  3.定期可以将虚拟机文件放到云盘中,等于备份了系统,随时还原 (但是文件太大上传有点麻烦,备份到硬盘倒是很方便的)

  4.因为linux用到开发中了,经常玩肯定能学到东西,这个就不用说了。

3.实现

  在网上看了各种虚拟机比较,当然还是VMware比较好,而且提供了VMvare-tools,共享文件夹,共享网络都很好,共享的文件夹就挂载到了linux中,可以将开发的代码放到共享文件夹里面,这样linux就可以部署了,也不需要代码拷来考去,或者用svn更新什么的,就比较麻烦了。

  我的方案是win7+centos7 因为生产环境使用的是centos,不过实际实现时有一些注意事项:

  vmvare提供了3种网络共享的方式 桥接、NAT及host-only 具体有什么区别我就不说了,自己查吧。一般都是使用桥接,这样虚拟机就相当于一台独立的机器,其他机器就可以访问虚拟机里面的服务,但是我工作的公司因为每台电脑都要进行mac登记才能上网,所以我不得不选择nat方式,nat方式不需要什么设置,比较简单,但是主机无法访问虚拟机里面的服务,后来在网上找到解决的方法就是做端口映射。上图:

  

如图:

  通过本机的800端口来访问虚拟机里面的80端口,实现也很简单,只需要在虚拟机里面做一个端口映射就可以了。

  在vmware里的 编辑->虚拟网络编辑器-> 选择nat模式 net设置->添加

  

  然后保存就好了,如果不行还要做检查一下linux的防火墙,开放80端口。如果要让别人的电脑也能访问,还需要在windows防火墙设置一下。当然哥比较懒,因为开发的时候经常要给别人看,都是直接关闭防火墙。当然你也可以将数据库什么的都放到linux里面去,windows只装一些软件使用linux里面的服务。

  但是用虚拟机如果要想不卡对电脑的配置还是要有要求的,我是8G内存,虚拟机开2G内存,开启虚拟机,IDE等工作软件基本要占用80%-90%的内存,使用还是比较流畅的,也可以将虚拟机后台运行,只使用它的服务就好了。

  

 
分类: centos环境部署

如何将linux用在开发环境中的的更多相关文章

  1. 将linux用在开发环境中

    我是如何将linux用在开发环境中的 1.为什么不直接安装Linux在主机 一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件 ...

  2. 我是如何将linux用在开发环境中的

    1.我为什么要写这篇文章 一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件费心费力的事,而且会经常出现一些莫名其妙的问题,以 ...

  3. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  4. Linux设备驱动开发环境的搭建(转)

    经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...

  5. Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/font ...

  6. Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux  opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2 ...

  7. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  8. wxWidgets 的 Linux / Windows 混合开发环境

    目标 建立一个开发 GUI 交互界面程序的环境,要求: 以 C/C++ 为主要程序设计语言. 最好能充分利用已有的 MFC 开发经验. 以 Linux 为主要开发环境.可以在 Windows 中编译并 ...

  9. 在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境

    在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境 1 IPv6简介 IPv6(Internet Protocol Version 6)作为 IPv4 的升级版本,它是作为一共软件升级安 ...

随机推荐

  1. $('#checkbox').attr('checked'); 回报checked或undefined该解决方案

    $('#checkbox').attr('checked'); 返回的是checked或者是undefined,不是原来的true和false了,有关此问题的解决方法例如以下 在JQ1.6之前的版本号 ...

  2. windows下使用lighttpd+php(fastcgi)+mysql

    一.windows下编译配置执行lighttpd 1.下载并安装cygwin. 2.下载lighttpd源码并解压3.在cygwin环境下进入lighttpd的解压文件夹后,执行: 1> ./c ...

  3. 手动安装英特尔® 凌动™ Android* x86 模拟器映像

    android的模拟器实在是太慢了,慢的让人欲仙欲死,欲罢不能.猛然发现我的电脑是intel的CPU,我勒个去,换x86模拟器.然后悲剧了,伟大的gfw 我要装sdk,我要研究android开发,到底 ...

  4. hdu N!

    Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in o ...

  5. redmine 出口中国的乱码

    pdf 这是redmine的bug.必须在个人账户更改将设立中国语文,足够的人才来解决. 顺便说一下,提示.以下更改文件的方法是无效的 /home/redmine/redmine-2.5.1/lib/ ...

  6. NFS 配置服务

    NFS 配置服务 北京市海淀区  张俊浩 一.NFS.即网络文件系统(Network File System,NFS).一种使用于分散式文件系统的协议,由升阳公司开发.于1984年向外发布.功能是通过 ...

  7. mybatis 并发问题解决,参考hibernate

    时候操作同一账户就是典型的样例. 比方A.B操作员同一时候读取一剩余金额为1000元的账户,A操作员为该账户添加100元.B操作员同一时候为该账户减去 50元.A先提交.B后提交. 最后实际账户剩余金 ...

  8. AsyncSocket长连接棒包装问题解决

    project正在使用长连接快来server沟通.因此,指定我们的协议前两个字节为数据长度来区分数据包 app这边数据有两种传输形式: 1.app主动请求所须要的数据: 2.app异步接收来自服务端的 ...

  9. expandableListView的divider该溶液显示在黑色

    黑色是divider高度.如何让他成为透明的啊? 布局例如以下:   <ExpandableListView android:layout_width="wrap_content&qu ...

  10. S性能 Sigmoid Function or Logistic Function

    S性能 Sigmoid Function or Logistic Function octave码 x = -10:0.1:10; y = zeros(length(x), 1); for i = 1 ...