freebsd開發環境解決方案(轉)

gugu99發表於2007-08-11
freebsd開發環境解決方案(轉)[@more@]

  以前曾經看過很多開發人員提到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,再編譯一次的速度就很快了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944810/,如需轉載,請註明出處,否則將追究法律責任。

相關文章