Squid中文權威指南 第二章(獲取Squid)

第2章 獲取Squid



2.1 版本和發佈

Squid開發者定期發佈源代碼。每一個發佈版有一個版本號,例如2.5.STABLE4。版本號的第三部分以STABLE或DEVEL(短期開發版本)開頭。

也許你能猜到,DEVEL版本傾向於擁有更新,更試驗性的功能。但也許它們有更多的bugs。無經驗的用戶不應該運行DEVEL版本。假如你選擇運行一個DEVEL版本,並且遇到了問題,請將問題報告給Squid維護者。

在一段時間的開發期後,Squid版本號變爲STABLE。該版本適合於普通用戶。當然,即使穩定版可能也有一些bugs。高的穩定版本(例如STABLE3,STABLE4)應該bugs更少。假如你特別關心穩定性,你應該使用這些最近發佈版本中的一個。



2.2 使用源代碼

爲什麼你不能copy一份預編譯的二進制代碼到你的系統中,並且期望它運行良好呢?主要理由是squid的代碼需要知道特定操作系統的參數。實際上,最重要的參數是打開文件描述符的最大數量。Squid的./configure腳本在編譯之前偵察這些值。假如你獲取一個已編譯的使用某個參數值的squid到另一個使用不同參數值的系統中,可能會遇到問題。

另一個理由是許多squid功能在編譯時必須被激活。假如你獲取一個別人已編譯的squid文件,它不包含你所需要的功能,那麼你又得再編譯一遍。

最後,共享庫的問題可能使得在系統之間共享可執行文件困難。共享庫在運行時被裝載,如已知的動態鏈接一樣。squid在編譯時會偵察你係統中的C庫的某些功能(例如它們是否被提供,是否能運行等)。儘管庫功能不常改變,但兩個不同的系統的C庫之間可能有明顯的區別。如果兩個系統差別太大,就會對Squid造成問題。

獲取squid的源代碼是非常容易的。請訪問squid的首頁:http://www.squid-cache.org。首頁有鏈接指向不同的穩定版和開發版。假如你不在美國,那麼請訪問squid的衆多鏡像站點中的一個。鏡像站點通常以"wwwN.CC.squid-cache.org"命名,N是數字,CC是國家的兩位代碼。例如,www1.au.squid-cache.org是澳大利亞的鏡像站點,在主頁上有鏈接指向不同的鏡像站點。

每一個squid發佈版分支(例如Squid-2.5)有它自己的HTML頁面。該頁面有鏈接指向源代碼,以及與其他發佈版的差別。假如你從一個發佈版升級到下一個,你應該下載這些差別文件,並且打上補丁,請見3.7章節中的描述。每個版本的發佈頁描述新功能和重要的改進,也有鏈接指向已經修正的bugs。

如果web訪問不可行,你能從ftp://ftp.squid-cache.org的FTP服務器獲取源代碼,或者使用其他FTP鏡像。要獲取當前版本,請訪問pub/squid-2/DEVEL 或 pub/squid-2/STABLE 目錄。FTP鏡像也在許多國家有,你能用同樣的國家代碼去猜測一些FTP鏡像站點,例如ftp1.uk.squid-cache.org。

當前的Squid發佈版本大約1M大小。在下載完壓縮的打包文件後,你能繼續第3章。



2.3 預編譯的二進制文件

一些Unix發佈版可能預包含了Squid的編譯版。對Linux系統,你可以找到Squid的RPM包。通常squid RPM包含在你所買的Linux光碟裏。Freebsd/Netbsd/OpenBSD也在它們的ports或者packages裏面包含了squid。

雖然RPM或者預編譯的packages能節省你一些時間,但它們也有一些弊端。就像我提過的一樣,在你開始編譯squid之前,某些功能必須被激活或禁止。而你安裝的預編譯的包可能不包含你想要的特定功能。而且,squid的./configure腳本偵察你係統中的特定參數,這些在你係統中的參數可能與編譯它的機器的參數不同。

最後,假如你想對squid打補丁,你必須等某個人編譯更新的RPM或packages,或者你還得自己找源代碼編譯。

我強烈建議你從源代碼編譯squid,當然怎樣選擇由得你。



2.4 匿名CVS

你能匿名訪問squid的CVS文件(只讀)以保持你的源代碼同步更新。使用CVS的有利面是你能輕易獲取當前運行版本的補丁。這樣就容易發現近來改變了什麼。

將這些補丁打到你所運行的版本中,有效的保持你的源代碼和官方版本的同步。

CVS使用樹型索引系統,樹幹叫做頭分支。對Squid而言,這裏也是所有的新改變和新功能的存放之地。頭分支通常包含試驗性的,也許不太穩定的代碼。穩定的代碼通常在其他分支上。

爲了有效的使用squid的匿名CVS,你首先應知道版本和分支是怎樣被標明不同的。例如,版本2.5分支被命名爲SQUID_2_5。具體的發佈有長的命名,例如SQUID_2_5_STABLE4。爲了得到squid版本2.5.STABLE4,請使用SQUID_2_5_STABLE4標籤;使用SQUID_2_5得到最近的2.5分支的代碼。

爲了使用squid匿名CVS服務,你首先必須設置CVSROOT環境變量:

csh% setenv CVSROOT :pserver:[email protected]:/squid

或者,對Bourne shell用戶:

sh$ CVSROOT=:pserver:[email protected]:/squid
	      
sh$ export CVSROOT

然後你就可以登陸到服務器:

% cvs login
	      
(Logging in to [email protected])
	      
CVS password:

在提示符下,敲入anoncvs作爲密碼。現在你可以用這個命令檢查源代碼樹:

% cvs checkout -r SQUID_2_5 -d squid-2.5 squid

-r選項指定獲取修訂標籤。省略-r選項你將獲得頭分支。-d選項改變存放文件的頂級目錄名。假如你省略-d選項,頂級目錄名就與模塊名字一樣。最後的命令行參數(squid)是要檢查的模塊名字。

一旦你檢查完squid源代碼樹,你能運行cvs update命令去升級你的文件,和保持文件同步。其他命令包括:cvs diff, cvs log, 和 cvs annotate。

想獲取更多CVS知識,請訪問:http://www.cvshome.org



2.5 devel.squid-cache.org

Squid的開發者維持一個獨立的站點,當前運行在SourceForge,提供了試驗性的squid功能。請檢查它們在http://devel.squid-cache.org.在這裏你能發現許多正在開發的工程,它們還未集成到squid的官方源代碼裏。你能通過SourceForge的匿名CVS服務來訪問這些工程,或者下載與標準版本不同的差別文件。

 
發佈了12 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章