分享
 
 
 

freebsd开发环境解决方案

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

以前曾经看过很多开发人员提到FreeBSD用于开发是非常优秀的系统,但是之前提到的主要都是freebsd在单机的开发环境下所具有的优势,但是 最近我发现其实FreeBSD在开发方面所具备的优势并不仅只于此。在一个 开发团队中使用FreeBSD是可以形成一个完整的解决方案的。在单机方面的开发环境上,我不想多说了,Linux其实也具备很多好的特点的,我想说得更多是linux所不具备的特点。当然这个方案使用linux来完成并不是不可能的,但是使用linux来完成其中的很多部分是有一些困难的,从便利性上来讲不如FreeBSD,从我这个懒人的角度来讲,如果有两个 方法来解决问题,一个既简单又快速(还很清晰),另一个相对比较复 杂,耗时长。那我没有理由非要选用后一种

。说这话的原因 是,我不想跟我们国家普遍存在的某些偏执的人引起任何的争论。只是想 说这里其实有一种简单易行的方法。更主要的原因是,这种方法在我已 知的情况下还没有人在开发环境的建立中使用。

其实这个方法所使用的技术都是已经被广泛采用的,甚至可以说有些古老的东西。只是通过FreeBSD这个系统能够把它们都串连在一起。可以形成一套完整的开发环境,还包括办公环境。我这个想法的核心是由一台FreeBSD中心服务器来完成的。这个中心服务器上安装CVS server,Samba server和NFS server就可以了,其中Samber server可以提供方便的空间共享,之所以除了NFS还要再单装Samba,是因为Samba在非*nix的环境上也可以使用。同时还可以安装CUPS来驱动一台打印机,通过Samba共享,让整个工作环境都可以共享打印服务。用FreeBSD做中央文件服务器和CVS服务器的好处是不会受到广大的Windows病毒的影响。现在还有一点缺憾的是在FreeBSD上还没有好的杀毒软件可用,虽然有个老美的杀毒软件,但是 因为是付费的,付给老美一方面有点贵贵,另一方面也比较麻烦,希望我们国家的杀毒软件厂商也能考虑做一个能在FreeBSD上运行的版本,就算收点钱也可以。这样的好处就在于可以在crontab里运行杀毒软件定期的扫描文件服务目录中的文件是不是感染了病毒。其实这对于FreeBSD没什么意义,因为FreeBSD也不会受病毒的影响,但是使用这个文件服务的windows的机器就危险了,这也算是我的一个期望吧,也许不太现实。在FreeBSD上安装CVS,Samba我都不太想多说了,文章很多了,我和老黄都曾经写过如何在FreeBSD上安装CVS server的文章。Samba很简单了用ports装就完了。以后有时间了我会把每个服务的安装文档整合进来形成一个完整的东西的。现在我们重点讲一下在FreeBSD上使用NFS的情况。其实这个是我最想说地,因为通过NFS和FreeBSD本身的软件系统相结合能够产生一个很意想不到地效果。

在FreeBSD上如何使用NFS server

其实在FreeBSD上使用NFS server非常简单。打开NFS server的服务是个很简单的事情,只需要运行/stand/sysinstall,选择Configure,在这个菜单中选择Networking,里面有一个NFS Server的选项,把它勾上以后会进入编辑器编辑一个文件/etc/exports你直接写你要export出去的目录就可以了。需要注意的一点是FreeBSD的NFS有个可能算是不太好的特点,export出去的目录必须是 mountpoint,也就是分区的挂点。例如你运行mount的时候你能看到你现在都mount了那些分区,mount到的那个目录就是相应的挂点。这点上Solaris就可以指定目录,所以我觉得FreeBSD这么弄有点不太爽,也许这样设计比较简单吧。在我所要描述的方法中我们需要的是将/usr这个挂点export出去。这里不得不提到一个问题,很多从linux转过来的兄弟都有个我们不太推荐的习惯,就是把整块硬盘就分成一个"/",在linux下其实也不推荐这么用的,如果在FreeBSD上这样分的话,问题就更多了,比如用NFS的话,你就得把"/"都export出来,还不郁闷死了。下面我举个例子在/etc/exports里面应该怎么写:

代码:

/usr

-alldirs -maproot=root

192.168.0.10

按照上面一行写的意思就是将整个/usr这个分区都export出来供192.168.0.10这个地址所使用,如果不写ip地址就是export给所有人用的,这么干比较危险,如果不是在一个100%可靠的网络里面最好别这么干。-alldirs的意思就是/usr中的每个目录都可以作为NFS的挂点挂到远程,这点比较重要,我后面会提到的,-maproot=root的意思就是给予对方root权限来操作目录。这里说句题外话,Solaris在这点有个不如FreeBSD的地方,Solaris里面export给的目标是不能够写ip地址的,必须写对方机器的机器名,而且这个机器名必须是DNS服务器或者/etc/hosts里面存在的机器,否则不能共享,用起来有点繁琐,不过可能是出于安全方面的考虑,呵呵。如果修改完了这个文件退出即可,如果是ee的话按ESC退出,如果是vi的话:wq退出。如果对其进行修改之后需要重启NFS server可以使用下列命令来完成

代码:

kill -s HUP `cat /var/run/mountd.pid`

我之前说了这么一大堆东西到底做什么用呢?下面我来解释一下这台中央服务器装NFS有什么用。在整个开发小组都是用FreeBSD的情况下,这样做非常具有意义,主要是在装机上,大家都知道无论是windows还是FreeBSD还是linux,重新装一台机器都是一件极度痛苦的事情。因为要首先要对系统进行升级,之后还有很多常用软件需要安装。虽然FreeBSD上面有ports系统,但是恐怕大家都有感觉,我们常规装一台FreeBSD的机器,需要在装好了之后升级源代码,然后重新编译内核,编译系统,慢点的机器make world一次等到花儿都谢了。还有一个问题就是,很多人其实不太喜欢在工作的机器上装ports和src的,因为这些东西很占地方,一套src差不多200多MB,一套ports也要300多MB。如果编译完了不make clean的话src会增加到350M左右,ports就更多了。但是如果make clean的话,再升级系统 或者应用软件的时候你又郁闷了,因为make这个工具有个特点,如果代码部分发生改变的时候,它只会编译发生改变的代码,而没发生改变的代码就不会编译,所以你要是上次编译完了make clean了,再编译就会从头开始,如果不做make clean,再编译一次的速度就很快了。有些人会问为什么不用FreeBSD提供的binary级的升级以及使用ports的package?原因是这样的,对于系统的binary升级补丁,一方面提供的频率比较低,而且我还不知道怎么下载安装。而且有的时候更新少的时候我不是太想升级。对于ports呢,我本人其实不太愿意用package,因为官方生成的package更新的速度很慢,这点很郁闷。自己生成package呢,总有各种各样的问题,虽然现在ports可以make package-recusive 但是,我弄了几次都没弄出一套完成的package出来。还是直接用ports来make install最方便,但是如果这些都在每台机器上重新编译的话,无疑是很痛苦的,如果是一台快机器的话,还可以,可能一天就能完了,如果是一台慢的机器弄不好3、4天…………实在是太烦人了。这个问题怎么解决才好呢?我们怎么才1个小时之内装出一个我们能够方便使用的,带有我们所需的应用软件的全新的机器呢?windows、linux恐怕都不太可能,我分析一下为什么这么说。从windows来讲,我想各位装的时候首先也都会升级系统,windows虽然有service pack可用,还有从windows update上下载单独的binary补丁,其实也是比较慢的。装一次windows 2000的sp4也很慢,再去windows update升级零散的补丁少说也得快1个小时。再加上装乱七八糟的软件,恐怕也得装个N小时。而linux呢,升级只升级内核,速度很快,装软件有弄好的rpm,也很快但是还是有几个问题,通常的linux本身装起来很慢,这个大家不能否认。装一下Red hat现在是个非常慢的事,没个几个小时装不完,而我装一套FreeBSD的基本系统不超过15分钟,这一点就没法比了。而且linux升级只升级内核的话,只能修正内核的问题,如果是附带的应用有问题,例如BIND,ftp,apache之类的东西,还需要单独找补丁包升级,也要累死。而且如果需要定制应用的话,rpm也得重新编译才行,用binary就要放弃定制的灵活性。所以要是装一套合用的linux也是要很长时间的。我所说的这些大家恐怕都有体会。但是FreeBSD上是可以解决这个问题的,这个恐怕是源于FreeBSD非常合理的系统设计,ports和src的系统都是非常灵活而且方便的系统,这给我们快速安装创造了条件,只要结合了NFS就可以实现。

我现在从安装一台全新的FreeBSD来讲解一下怎么来实现快速安装。我们之前的那台服务器现在就派上用场了。那台中央服务器上可以安装src和ports,我们用NFS server把它的/usr export出来,而在新装的这台机器上选择不安装src和ports,在系统安装完毕之后,需要在/usr中建立src和ports的目录,然后我们通过下列命令来把中央服务器上的src和ports挂到我们的机器上,我们假设中央服务器ip地址为192.168.0.1,而新装的机器的ip地址为192.168.0.10,我们已经在中央服务器上向这个地址export了它的/usr(方法参考前面提到的)

代码:

mount_nfs 192.168.0.1:/usr/src /usr/src

mount_nfs 192.168.0.1:/usr/ports /usr/ports

这样一来,我们新装的机器上就有了src和ports了。中央服务器在安装的时候也会make kernel和make world的,如果客户机的硬件和希望的配置跟中央服务器不太一样,只要在上面再写个新的内核配置文件,再用这个配置文件编译一个适合客户机的内核就可以了,而make world对于那 台机器都是一样的,所以我们在客户机上直接make installworld就完了。 把漫长的make world过程都给省了。装应用软件也是一样,只要有一台机器曾经用这套ports make install装过这个软件,并且没有make clean的话,其他的机器就可以跑到这个目录里面make reinstall一下就行了。我解释一下为什么要make reinstall,而不是make install,这是因为 ports有个特点,它会在这个应用装过以后保留下一个install_done的标记,你在每个装完

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有