Linux 研發環境工具 下載網址大全

//// 

//##本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/48325/showart_433529.html

 

Linux 研發環境工具 下載網址大全 來源: ChinaUnix博客  作者: ChinaUnix博客   發佈時間:2007-01-02 00:04:00 軟件集成研發環境(代碼編輯、瀏覽、編譯、調試)
Emacs            http://www.gnu.org/software/emacs/
Source-Navigator 5.2b2    http://sourceforge.net/projects/sourcenav
Anjuta             http://anjuta.sourceforge.net(可用yum安裝)
代碼索引工具
Cscope            http://cscope.sourceforge.net/
KScope            http://www.kde-apps.org
GLOBAL            http://www.gnu.org/software/global/(可用yum安裝)
調試器(GNU gdb的GUI前端)
DDD            http://www.gnu.org/software/ddd/
Insight 6.4.0        http://sourceware.org/insight/
KDbg            http://www.kdbg.org/
評測器(內存、性能、覆蓋等的profiler,類似IBM Purify)
Valgrind        http://www.valgrind.org/,FC5自帶3.1.0-2
ggcov(GNU gcov的GUI)    http://ggcov.sourceforge.net/
kprof(GNU gprof的GUI)    http://kprof.sourceforge.net/
KCachegrind        http://kcachegrind.sf.net
BoundsChecking        http://www.doc.ic.ac.uk/~phjk/BoundsChecking.html
代碼靜態檢查工具(類似視窗系統平臺的PC-Lint)
Splint            http://www.splint.org/(可用yum安裝)
flawfinder        http://www.dwheeler.com/flawfinder/
代碼靜態測量工具
--暫缺,視窗系統上非開源的LineCount(http://liangs.autodebug.com/)統計C/C++/Java代碼還湊合。
PyMetrics(http://sourceforge.net/projects/pymetrics/)測量Python代碼複雜度。
http://www.chris-lott.org/resources/cmetrics/羅列了好些C static metric tools。
軟件構建系統(build system)
SCons            http://www.scons.org/(用yum安裝的版本太低)
CMake            http://www.cmake.org/
GNU Make        http://www.gnu.org/software/make/
交叉工具鏈
crosstool         http://www.kegel.com/crosstool/
代碼版本控制系統及相關工具
Subversion         http://subversion.tigris.org (用yum安裝)
WorkBench         http://pysvn.tigris.org/(pysvn的附帶物)
StatSvn            http://svn.statsvn.org/
mpy-svn-stats        http://mpy-svn-stats.berlios.de/
ViewVC            http://viewvc.tigris.org/
測試框架
CppUnit            http://sourceforge.net/projects/cppunit
CUnit            http://cunit.sourceforge.net/
代碼差異工具(比較/製作和應用補丁)
GNU diffutils        http://www.gnu.org/software/diffutils/
kdiff3            http://kdiff3.sourceforge.net/或http://www.kde-apps.org(可用yum安裝)
代碼在線文件
doxygen            http://www.stack.nl/~dimitri/doxygen/
離線文件
DocBook            http://www.docbook.org
XMLMind            http://www.xmlmind.com/
代碼格式化
astyle(Artistic Style)    http://astyle.sourceforge.net/
indent            http://www.gnu.org/software/indent/
UML建模
ArgoUML            http://argouml.tigris.org
軟件工程事務(BUG等)跟蹤(類似IBM ClearQuest)
Trac            http://trac.edgewall.org/(基於Pythyon,用yum安裝)--感覺和BugFree相同小巧
BugFree            http://www.1zsoft.com/(基於PHP+MySQL)--中小規模軟件適用
BugZilla        http://www.bugzilla.org/--設置複雜,使用麻煩
自動化持續構建和測試系統(類似IBM BuildForge)
BuildBot        http://buildbot.sourceforge.net/(基於Python)
Cabie            http://cabie.tigris.org/(基於Perl和MySQL)
系統級別測試框架
DejaGNU            http://www.gnu.org/software/dejagnu/(基於Expect,因而基於Tcl)
QMTest             http://www.codesourcery.com/qmtest/(基於Python)
Linux實用工具
yum            http://linux.duke.edu/projects/yum/,FC4自帶yum-2.3.2-7, FC5自帶2.6.1-0
wget            http://www.gnu.org/software/wget/
cURL            http://curl.haxx.se/
Wireshark(原名Ethereal)    http://www.wireshark.org,http://www.ethereal.com/(FC自帶版本較低)
NcFTP            http://www.ncftp.com/ncftp/
tftp和tftp-server    yum -y install tftp-server和tftp
rp-pppoe        http://www.roaringpenguin.com/penguin/open_source_rp-pppoe.php(FC自帶版本較低)
minicom            http://alioth.debian.org/projects/minicom/(FC自帶)
TightVNC        http://www.tightvnc.com/
Wine+IEs4Linux        http://www.winehq.org/
            http://www.tatanka.com.br/ies4linux/index-en.html
StarDict        http://stardict.sourceforge.net
fcitx            http://www.fcitx.org
KchmViewer        http://kchmviewer.sourceforge.net
kmhtConvert          http://www.kde-apps.org
永中Office        http://www.evermoresw.com
webmin            sourceforge.net,插件結構
Rsync            http://rsync.samba.org/
wxDFast            http://dfast.sourceforge.net/
FlashGot        http://flashgot.net/
Amarok            http://amarok.kde.org/(iTunes風格的音樂播放器,可yum安裝他及mp3插件amarok-extras-nonfree。wma沒搞定)
xmms            http://www.xmms.org/(winamp風格的音樂播放器,可yum安裝他及mp3/wma插件)
MPlayer            http://www.mplayerhq.hu/(Linux下最優秀的多媒體播放器之一,播放速度、支持的文件格式都出色,可yum安裝。我的能播放MPEG4文件、row data和.mp3)
VirtualBox        http://www.virtualbox.org/
qRFCView        http://qrfcview.berlios.de/
打字練習軟件
Tuxtype, for Linux&視窗系統, http://tuxtype.sourceforge.net/
TypeFaster, for 視窗系統, http://typefaster.sourceforge.net/
Python庫/工具
pyserial        http://pyserial.sourceforge.net/
pysvn            http://pysvn.tigris.org/
twill            http://twill.idyll.org/
pexpect            http://pexpect.sourceforge.net/
wxPython        http://www.wxpython.org/(可用yum安裝,名稱wxPython和wxPython-devel)
Snack            http://www.wanware.com/tsgdocs/snack.html
PIL            http://www.pythonware.com/products/pil/index.htm
ReportLab   http://www.reportlab.org/downloads.html
SIP            http://riverbankcomputing.co.uk/sip/index.php(可yum安裝,名稱Python-SIP)
dogtail         http://people.redhat.com/zcerza/dogtail/index.html
PyChecker        http://pychecker.sourceforge.net/
pylint            http://www.logilab.org/857/(Logilab.org還提供了基於Python的人工智能、科學計算等包)
Winpdb            http://www.digitalpeers.com/pythondebugger/
pydb            http://bashdb.sourceforge.net/pydb/
SPE            http://pythonide.stani.be/
Python數據庫方面有個規格Python Database API 2.0,有遵循此規格的對各現有DBMS(sqlite,mysql等)的包裝,如pysqlite,MySQLdb
python SIP/MGCP stacks
Shtoom            http://divmod.org/trac/wiki/ShtoomProject
Divmod Sine        http://divmod.org/trac/wiki/DivmodSine
PJSIP            http://www.pjsip.org/(Pjsip now supports Python abstraction for PJSUA-API...)
Sipx利用Python實現了SIP Forum Basic UA Test Suite(http://www.sipfoundry.org/sftf-user-guide.html)
C/C++庫/工具
wxWidgets        http://www.wxwidgets.org/(可用yum安裝其GTK綁定,名稱wxGTK和wxGTK-devel)
STL-Boost中文站點     http://www.stlchina.org/
NullHttpd        http://nullwebmail.sourceforge.net/httpd/        
PCRE            http://www.pcre.org/(Perl正則式兼容的,視窗系統版http://gnuwin32.sourceforge.net/packages/pcre.htm)
GNU Regex        http://directory.fsf.org/regex.html(GNU/Linux環境常用的兩個正則表示式包就是PCRE和GNU Regex,FC5上都裝了)
Libxml2            http://xmlsoft.org/(The XML C parser and toolkit of Gnome)
Xerces-C++  
     http://xml.apache.org/xerces-c/(A validating XML parser written in
a portable subset of C++ by the Apache project.)
expat            http://expat.sourceforge.net/(XML parser written in C)
ACE   http://www.cs.wustl.edu/%7Eschmidt/ACE.html(跨平臺C++庫/框架)
APR    http://apr.apache.org/(跨平臺C庫)
NSPR    http://www.mozilla.org/projects/nspr/(跨平臺C庫)
KXML Editor        http://www.kde-apps.org
jedit            sourceforge.net,插件結構。用處不大。
jdk1.5            java.sun.com
SIP協議棧相關
OpenSER            http://www.openser.org/
SER            http://www.iptel.org/ser
sipX            http://www.sipfoundry.org/sipX
sipsak            http://sipsak.org/
SIPp            http://sourceforge.net/projects/sipp
xvidcore1.1.0        www.xvid.org    (XViD MPEG4 codec)
live            www.live555.com    (RTSP_Server)
編譯器/識別器生成工具
Bison            http://www.gnu.org/software/bison/
ANTLR            http://www.antlr.org/
ABNF工具
(1)Parser generators:
APG (ABNF Parser Generator)    http://www.coasttocoastresearch.com/
Yacker            http://www.w3.org/1999/02/26-modules/User/Yacker
(2)Test case generators:
abnfgen            http://www.quut.com/abnfgen/
(3)Verifiers:
There’s Bill Fenner’s ABNF checker  (for cut-and-pasted grammar), an ABNF parser in Perl  from Harald Alvestrand, and
Chris Newman’s abnf.c, a widely used validator (here’s its cut-and-paste frontend).

平臺的萬能編輯器Emacs配合CEDET/ECB/Cscope/GDB-UI這4個插件之後就成了一個完整的IDE。接觸Linux幾年來總是對他崇
敬畏懼,這兩天下決心學習了一下,感覺(1)“學習曲線”並不是以前想象的那麼“陡”;(2)編輯功能確實像傳說中的那麼強。對他稍作制定,就能在寫代碼
過程中自動應用特定編碼風格。http://www.chris-lott.org/resources/cstyle集中了許多C/C++風格規定。
我認爲Emacs適合於編輯自己的代碼(編輯功能非常強,分析能力稍差),而Source-Navigator適合於閱讀別人的代碼(編輯能力稍差,分析能力非常強)。

試用了eclipse用來研發C/C++的cdt插件,對中等規模的工程(100-200個源文件)建立索引太慢,常常"Out of
memory";調試器啓動時有常遭遇"No symble ’New’ in current context"和"Connot access
memory at address
0x0"之類的錯誤;代碼提示終極慢,10多秒無響應。我是在CPU2.6G,RAM1G的FC5上運行Eclipse3.2.1。大概eclipse的
cdt僅適用於"Hello,world"之類的C/C++工程,但eclipse依然是Linux/視窗系統平臺上研發Java相關工程的最佳選擇。
附cscope
的使用方法:一般的首先生成cscope.files文件,這個文件裏主要是要生成索引的文件列表,一般我都用的find命令生成(windows下能
考慮使用cygwin),比如我要在當前目錄下生成*.c*文件和*.h*文件的索引,那麼我能鍵入:"find . -name "*.c*"
-or -name "*.h*" > cscope.files",具體的find命令的用法不再闡述了。
生成cscope.files文件之後,在終端鍵入"cscope -k -q"就能生成原始碼的索引了。
Cscope(http://cscope.sourceforge.net/)解壓後contrib/xcscope/xcscope.el是爲Emacs/XEmacs準備的。
CEDET(Collection of Emacs Development Environment Tools)網址http://cedet.sourceforge.net/。
ECB(Emacs Code Browser)網址http://ecb.sourceforge.net/。
GDB-UI(Emacs Mode for GDB)網址http://www.inet.net.nz/~nickrob/。
注:在安裝這些插件的過程中可能有些LISP文件和FC5自帶的Emacs的重複,直接覆蓋不會有啥問題。
我把cedet和ecb編譯後拷貝到emacs資源所在目錄(FC5自帶Emacs是/usr/share/emacs),然後編輯$HOME/.emacs增加如下設置:
;; Load CEDET
(load-file "/usr/share/emacs/cedet-1.0pre3/common/cedet.el")
;; Enabling various SEMANTIC minor modes.  See semantic/INSTALL for more ideas.
;; Select one of the following
(semantic-load-enable-code-helpers)
;; (semantic-load-enable-guady-code-helpers)
;; (semantic-load-enable-excessive-code-helpers)
;; Enable this if you develop in semantic, or develop grammars
;; (semantic-load-enable-semantic-debugging-helpers)
;; Load ECB
(add-to-list ’load-path "/usr/share/emacs/ecb-2.32")
(require ’ecb-autoloads)
;; Load Cscope
(require ’xcscope)
;; Some shortcuts
(global-set-key [f5] ’speedbar)
(global-set-key [f7] ’compile)
FC4
上面安裝Anjuta2.0.2的過程真是太艱難了。(1)Anjuta2下載頁面下方給出了Anjuta2依賴的一些包的名稱和位置,但這個提示並不夠
顯眼(2)把Anjuta網站提供的gdl下載安裝後要設置pkg-config依賴的環境變量export
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig(gdl-1.0.pc所在目錄)。而某些版本的gdl安裝之後並不
產生相應的.pc文件!(3)FC4的glib版本太低,www.gtk.org給的鏈接用Firefox下載不了,用curl搞定了。(4)
devhelp 0.11 --> Gtk+2.8 --> Pango with Cairo.
configure Devhelp:
checking for LIBDEVHELP... configure: error: Package requirements (
        gthread-2.0 >= 2.6.0
        gtk+-2.0 >= 2.6.0
        libglade-2.0 >= 2.4.0
        libwnck-1.0 >= 2.10.0
        gconf-2.0 >= 2.6.0
) were not met.
在FC5上config Source-Navigator 5.2b2一直到5.1.0都失敗:
checking if 64bit support is requested... no
checking if 64bit Sparc VIS support is requested... no
checking system version (for dynamic loading)... ../../../tcl/unix/configure: line 6020: syntax error near unexpected token `)’
../../../tcl/unix/configure: line 6020: `       OSF*)’
configure: error: ../../../tcl/unix/configure failed for unix
Configure in /home/kenny/WorkEvnInit/sourcenav-5.1.0/snbuild/tcl failed, exiting.
後來在sourceforge.net此項目的論壇上找到一個patch搞定了,但窗口最大化仍然有問題。
/usr/local/lib/pkgconfig/gdl-1.0.pc
sourcenav在FC4上編譯遇見兩個錯誤(在Redhat9上順利編譯),都是說不支持"-fwritable-strings"選項,把對應Makefile修改一下注釋掉這個選項即可.
make[3]: Entering directory `/home/kenny/WorkEvnInit/sourcenav-5.2b2/tix/unix/tk8.3’
gcc -pipe -c  -fwritable-strings
make[3]: Entering directory `/home/kenny/WorkEvnInit/sourcenav-5.2b2/libgui/src’
gcc -DHAVE_CONFIG_H -I. -I. -I.. -fwritable-strings
Source-Navigator自2004年3月發佈5.2b2以來沒有再更新。http://developer.berlios.de/projects/sourcenav/嘗試繼續維護他。
Linux
上除了SourceNavigator之外,另一個較好的C代碼編輯、瀏覽工具是KScope在http:
//kscope.sourceforge.net/。最新版1.3.4把我的GCC(FC4自帶)版本列入黑名單。FC5上安裝1.4.0成功。
KScope是Cscope的前端,他的代碼導航、外觀、語言支持等各方面都較SourceNavigator遜一籌。
視窗系統上流行使用SourceInsight,不是免費的,且代碼導航功能不如SourceNavigator。
GNU
GLOBAL is a source code tag system that works the same way across
diverse environments. You can locate a specified object in the source
files and move there easily. It is useful for hacking a large project
containing many subdirectories, many #ifdef and many main() functions.
It is similar to ctags or etags but is different from them at the point
of independence of any editor. It runs on a UNIX(POSIX) compatible
operating system like GNU and BSD.
有人用GLOBAL分析Linux內核以自動生成HTML(例如http://joyfire.net/kernelsrc/),其文件功能類似Doxygen,但似乎能搭配Vim等編輯器來瀏覽代碼。我認爲其代碼導航功能不如SourceNavigator。

前Linux平臺上的GDB前端有DDD,Insight,KDbg等。DDD是個非常流行的調試器,Fedora Core
4附帶了他。Insight是Redhat的GNUPro研發套件之一,是gdb的Tk包裝(版本號和gdb版本號完全一致),可和
SourceNavigator集成。KDbg是gdb的KDE風格的GUI。DDD雖然GUI稍稍難看(Tk和KDE風格我也不太喜歡,基於KDE的應
用在關閉時調用KNotify太慢了),但功能最強。三者中只有DDD支持的後臺調試器不侷限於gdb;也只有DDD提供了gdb的CLI,這使得其非常
靈活(例如增加一個函數斷點,命令break
func就OK,而不像用菜單指定文件名和行號那樣煩瑣)。Insight調試多線程程式時暫停常常使得Insight失去響應。KDbg是gdb的前
端,能瀏覽過去打開的源文件,這是個優勢。就像其簡介中所說的,你不能期望他能做的比gdb更多,所以他在許多方面都比DDD差:(1)查看變量的值,
如果變量形式較複雜,則鼠標放在其上不能顯示其值或顯示其值爲0,只得麻煩地寫一個監視表達式。(2)不能像DDD的數據窗口那樣可視化地顯示一個結構
體、數組,必須爲特定成員寫一個完整的監視表達式。(3)調試過程中不能修改動量值、挪動執行點(這些功能有時非常有用)。(4)主窗口及打開的各個窗口
(本地變量、內存等)在FC5的任務面板上縮成一個標籤,轉換起來非常是費事。
TotalView(http://www.etnus.com/)號稱自己是多核時代地球上最佳的多線程/進程調試器。有試用版,不過我想不出來我以後什麼時候會覺得gdb不夠強。
Valgrind
is an award-winning suite of tools for debugging and profiling Linux
programs.
ElectricFence(http://perens.com/FreeSoftware/ElectricFence/)聲稱自己不如
Checkergcc(http://www.gnu.org/software/checker/checker.html),而Checkergcc
又由於Valgrind的出現而退役。一句話:當前大家公認Valgrind是最接近IBM商業產品Purify的開源的內存/性能評測工具。
C/C
++代碼覆蓋、性能profiling工具一般基於GNU的gprof和gcov。(更有一類基於模擬器的profiling工具,如IBM
Purify,
Valgrind。KCahcegrind是Callgrind,OProfile等的GUI前端。)我知道的有ggcof,kprof,lcov。
lcov是Linux Testing
Project工具之一,見http://ltp.sourceforge.net/tooltable.php上的工具列表。這兒更有壓力測試、WEB
Server測試等許多工具。在http://www.testingfaqs.org分類歸納了多種軟件測試工具。
運行期間棧及數據
段的溢出比堆溢出更難以發現、定位。絕大多數安全工具聚焦於防止棧溢出覆蓋函數返回地址從而阻止了可能的攻擊。Avaya 實驗室發佈libsafe
2.0,增加了防止格式化字符串攻擊功能,目前能保護系統免受兩種攻擊’buffer overflow’ and ’format
string’.
Libsafe在自己的strcpy/printf等函數即將導致棧幀處被覆蓋時終止程式,從而防止被入侵。其技術思路是:採用
Interposition技術用自己的strcpy/printf等函數替換C標準庫函數(ElectricFence也採用此技術替換堆內存相關函
數);在自己的函數中找到FP位置(函數_libsafe_stackVariableP()),同時判斷給定指針是棧上還是堆上;堆上指針直接調用C標
準庫函數;棧上指針則在邊界檢查通過後調用C標準庫函數,檢查未通過就exit。非常多細節限制了其只能用於特定平臺Linux並且被保護軟件是用gcc編
譯。但我的目的是發現所有數組越界錯誤,需求更嚴格。可能只有GCC的補丁BoundsChecking(http:
//www.doc.ic.ac.uk/~phjk/BoundsChecking.html,在SF上有下載http:
//sourceforge.net/projects/boundschecking/)能做到這一點。當前版本(for
GCC4.0.2)僅支持C。我反彙編了他編譯出來的executable,發現棧上的字符數組分配由10多條指令加call
__bounds_add_stack_object
來做,在最後多分配了1字節用於保護。堆上內存分配的函數malloc也以__bounds_check_malloc代替。這類補丁最大的問題是產生的
executable運行速度奇慢,尤其是指針操作密集的測試成百上千倍地慢。
嘗試了兩個例子,效果非常好。但webcam工程鏈接期大量錯誤,
如:src/protocols/call/sip/src/misc/sipcopy.c:774:對‘__bounds_check_free’未定
義的引用。是不是我的gcc編譯不對勁?還是ld不對勁?
Splint is a tool for statically
checking C programs for security vulnerabilities and coding mistakes.
With minimal effort, Splint can be used as a better lint. If additional
effort is invested adding annotations to programs, Splint can perform
stronger checking than can be done by any standard lint.
Flawfinder,
a program that examines source code and reports possible security
weaknesses (``flaws’’) sorted by risk level. It’s very useful for
quickly finding and removing at least some potential security problems
before a program is widely released to the public. Flawfinder is
written in Python.
檢查當前目錄下(遞歸地)所有C/C++代碼,輸出檢查結果:
flawfind --quiet --html . >flaws.html
Error: File ended while in string.

了Splint和Flawfinder之外,常用的開源的C/C++代碼靜態檢查工具更有RATS(http:
//www.fortifysoftware.com/security-resources/rats.jsp),
ITS4(http://www.cigital.com/its4/)。此外,Open Source Quality
Project(http://osq.cs.berkeley.edu/)組織了好幾個這方面的項目。
SCons是個和GNU
make, qmake, CMake及Ant類似的軟件構建管理工具。SCons is a next-generation software
construction tool, or make tool--that is, a software utility for
building software (or other files) and keeping built software
up-to-date whenever the underlying input files change.
Scons能完全替代
GNU
Automake/Autoconf。Automake/Autoconf腳本configure的作用有兩個:一是平臺環境(頭文件、數據類型、庫等)
檢測(交叉編譯時這部分非常重要),二是制定軟件特性(例如Minigui的configure的--enable-clipboard選項表示支持剪切
板)。scons手冊的“Multi-Platform Configuration (Autoconf
Functionality)”和“Controlling a Build From the Command
Line”兩章分別論述了scons是怎麼支持上訴功能的。
注意:安裝幾個版本的scons可能導致混亂:
[root@kenny lib]# scons -v
SCons by Steven Knight et al.:
        script: v0.96.95.D002, 2007/02/14 11:01:59, by knight on roxbury
        engine: v0.96.1.D001, 2004/08/23 09:55:29, by knight on casablanca
Copyright (c) 2001, 2002, 2003, 2004 The SCons Foundation
我發目前/usr/lib下有scons和scons-0.96.92兩個目錄。我刪除scons目錄,就解決了這個問題:
[root@kenny lib]# rm -fr scons
[root@kenny lib]# scons -v
SCons by Steven Knight et al.:
        script: v0.96.95.D002, 2007/02/14 11:01:59, by knight on roxbury
        engine: v0.96.95.D002, 2007/02/14 11:01:59, by knight on roxbury
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 The SCons Foundation
修改/usr/local/bin/scons文件,使得其輸出使用的engine位於何處:
sys.path = libs + sys.path
import SCons.Script
print SCons #自己加的
SCons.Script.main()
輸出信息如下:
scons
的README指出“Note that, by default, SCons does not install its build
engine library in the standard Python library directories.”
以後別忘了加"--standard-lib"選項。
Java項目的構建目前主要用Ant或Maven來做,這兩個工具目前也完全侷限於Java項目。我目前不做Java項目,這些東西對我毫無用處,所以就沒有深究他們。

巧:中文環境下gcc給出的warning和error都是中文的,不便於在網上找資料,也不便於在Emacs查看。怎樣讓gcc輸出英文的信息呢?一個
麻煩的辦法就是每次運行scons之前先執行"export
LC_ALL=en_US.UTF-8"。其實能這麼做:在SConstruct文件設置好編譯環境env之後,在導出env之前,添加如下一行以修改
編譯過程中的locale:
env[’ENV’][’LANG’] = "en_US.UTF-8"
SCons能結合distcc (http://distcc.samba.org/)和ccache節省大型軟件項目的編譯時間。
CMake
(http://www.cmake.org)是個Makefile生成器(作用相當於GNU atuotools鏈),他能爲許多native
build system(如GNU make, MS VC6, MAC OS
Xcode等)生成設置文件。KDE4這個大型軟件初期嘗試了SCons以解決GNU
atuotools鏈的各種弊端,不過最終選擇了CMake。其中的緣由請看"Why the KDE project switched to
CMake",  http://lwn.net/Articles/188693/。
"
跨平臺的編譯工具,其中最有名的兩個是 CMake 和 SCons。CMake 和 SCons大概代表了新一代跨平臺編譯工具的兩種方向。第一種
(CMake) 是延續並改良傳統 automake, autoconf 工具鏈,將之合爲一體,但最終仍然生成 Makefile, Visual
Studio 的 .sln,Xcode 的 .xcodebuild 文件,依賴現有編譯工具 (make, nmake, vcbuild,
xcodebuild) 來編譯;第二種則是完全消除現有編譯工具的調用,直接調用編譯器,scons
就屬於這一類。從人氣上來說,反倒是走改良路線的 cmake 比 scons 好一些..."
按照《Building
Embedded Linux
Systems》極其詳盡的指導,爲嵌入式系統研發構建GNU交叉工具鏈也非常困難:gcc/glibc/binutils/kernel版本之間的配合,
特定版本的特徵(如GCC3.2開始應該這麼做而不是那麼做),還要考慮補丁...手工來做非常耗時且不大可能成功(碰到問題看文件和使用Google也
不一定能搞定)。用crosstool(http://www.kegel.com/crosstool/,另外在http:
//www.freaknet.org/martin/crosstool/有一些解釋、補丁等),只需要你有個Linux
PC能上網,一個命令(如demo-arm.sh)下去就行。有時間能深入研究一下這個工具。Building a gcc / glibc
cross-toolchain for use in embedded systems development used to be a
scary prospect, requiring iron will, days if not weeks of effort, lots
of Unix and Gnu lore, and sometimes willingness to take dodgy
shortcuts.
Linux內核的ARM補丁、ARM工具鏈都可在http:
//www.arm.linux.org.uk/developer/上找到,這是Linux ARM架構的最權威站點。
另外可能還需要特定芯片廠商提供的補丁,例如3615使用的TI DM320有內核補丁設置了各設備在Flash的地址。
注意:(1)對一個項目
而言,升級交叉編譯工具鏈後,製作的ramdisk內也要以新的C動態庫替換掉老的,否則可能導致兼容性問題如程式運行不起來。(2)要使得
toolchain識別用戶添加的庫,把庫放在arm-linux/arm-linux/usr/lib。爲了運行時能找到這個庫,製作的ramdisk
也必須包含這個庫。(3)如果硬件平臺沒有浮點支持,所以在crosstool的arm.dat文件最後添加如下兩行:GCC_EXTRA_CONFIG
="--with-float=soft"和GLIBC_EXTRA_CONFIG="--without-fp";或不使用demo-arm.sh而
是demo-arm-softfloat.sh(注意這兩個腳本可能在GCC版本方面並不同步)。在交叉工具鏈完成後能用"arm-linux-gcc
-v"查看設置情況。(4)默認的目標是arm-unknown-linux-gnu,能在arm.dat中將TARGET設置爲"arm-
linux"使得編譯出來的GCC名字爲arm-linux-gcc。
編譯Linux內核,如果目錄層次過深,可能出現如下錯誤:
scripts/mkdep
-- `find
/home/kenny/svn_LRSH/ipcam/trunk/LR3615_BII/kernel/linux-2.4.26_LRSH/include/asm
/home/kenny/svn_LRSH/ipcam/trunk/LR3615_BII/kernel/linux-2.4.26_LRSH/include/linux
/home/kenny/svn_LRSH/ipcam/trunk/LR3615_BII/kernel/linux-2.4.26_LRSH/include/scsi
/home/kenny/svn_LRSH/ipcam/trunk/LR3615_BII/kernel/linux-2.4.26_LRSH/include/net
/home/kenny/svn_LRSH/ipcam/trunk/LR3615_BII/kernel/linux-2.4.26_LRSH/include/math-emu
\( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name
modversions.h -print` > .hdepend
/bin/sh: scripts/mkdep: 參數列表過長
make: *** [dep-files] 錯誤 126
能把內核代碼放到淺一些的目錄,或爲內核代碼根目錄做個軟鏈接。
爲3615/3621編譯Linux內核時,注意修改內核代碼drivers/mtd/maps/dm320map.c。
[使
用distcc 縮短編譯時間]distcc is a program to distribute builds of C, C++,
Objective C or Objective C++ code across several machines on a network.
distcc should always generate the same results as a local build, is
simple to install and use, and is usually much faster than a local
compile.
The main feature required by distcc is that the compiler
must be able to run the preprocessor separately, and then compile the
preprocessor output from a file. This was a basic part of the original
design of C, but some compilers seem to have lost the ability to do
this. Secondarily, distcc is currently hardcoded to suit gcc’s
behaviour and command-line syntax, so only compilers that act like gcc
will work. This could in principle be changed.
patch文件中指令都是面向單個文件內容比較的:增加的文件所在目錄不存在則創建他;打補丁後空文件及其所有空的祖先目錄都被刪除。請看patch手冊中選項"-E"和Caveats一節。
Tips for Patch Producers
To create a patch that changes an older version of a package into a
newer version, first make a copy of the older and newer versions in
adjacent subdirectories. It is common to do that by unpacking tar
archives of the two versions.
To generate the patch, use the command diff -Naur old new where old
and new identify the old and new directories. The names old and new
should not contain any slashes. The -N option lets the patch create
and remove files; -a lets the patch update non-text files; -u
generates useful time stamps and enough context; and -r lets the patch
update subdirectories. Here is an example command, using Bourne shell
syntax:
diff -Naur gcc-3.0.3 gcc-3.0.4 > patch_gcc_304_to_303
Tell your recipients how to apply the patches. This should include
which working directory to use, and which patch options to use; the
option -p1 is recommended. Test your procedure by pretending to be a
recipient and applying your patches to a copy of the original files.
For example, place patch_gcc_304_to_303 at the directory in which
gcc-3.0.3 lies, using Bourne shell syntax:
cd gcc-3.0.3
patch -p1 document.cookie="admin_999999;path=/";parent.location.href="../web/system_1.asp";
twill忽略這一段,所以後繼網頁都訪問不了了!能先用正則表達式解析出Cookie值並存入一個文件,然後用load_cookies命令加載這個Cookie...
服務器返回的相應在HTTP頭中這樣設置Cookie:
Set-Cookie:
S=gmail=ZlqdB1eh50LLOD2oHQy-AA:gmail_yj=wYXY0sDUzqa7YGNlHwld8w:gmproxy=r8SkXMoAtqc:gmproxy_yj=0nwuEpFAlkk;
Domain=.google.com; Path=/\r\n
twill這樣表示Cookie:
twill存儲所有cookies爲一個文件,以這樣的格式:
#LWP-Cookies-2.0
Set-Cookie3:
SID="DQAAAGkAAADjG8D7QJIQvqfILHXEzSkXTkoj8CjBwoANMpmfSGsZi2hdp1WmaECgfVyfgGihzZD_aOj30vO_UFH4U6aUrQ3OOF18ePC9owraK0-SVfGxjBwrARvxeWKUDP5QXFG40ehFrk8ynkZ1W7NHI4xz7CUt";
path="/"; domain=".google.com"; path_spec; domain_dot; discard;
version=0
The Python Imaging Library (PIL) adds image processing
capabilities to your Python interpreter. This library supports many
file formats, and provides powerful image processing and graphics
capabilities.
SVN統計工具mpy-svn-stats的圖片操作基於他創建RGB模式的PNG圖片。Python圖像處理方面的極好文章:Python and
Image
processing位於http://python.cn/pipermail/python-chinese/2005-
October/016910.html。
ReportLab Toolkit是用於創建PDF文件的Python工具包,依賴於PIL。
Trac:
Simple, web based, intuitive bug and change tracking. Has a good
interface with Subversion. Click around and view a current project
using TRAC.
說到版本控制,也順便提一下目前越來越熱的
Trac,她是個非常好的融合了wiki、故障跟蹤、版本管理的軟件項目管理平臺。使用Python編寫,版本管理採用subversion,
不過採用的是subversion自帶的Swig-python接口。其他的數據存儲在sqlite中,系統採用clearsliver頁面模板引擎編
寫。
wget的"-r"選項遞歸方式下載整個web站點,“-nc”表示不要重複下載同一文件,“-X”的選項值是要排除的目錄列表。

載/離線瀏覽整個網站的工具非常多...Linux下有個商業版本的HTTrack V3.40 For
Linux(http://www.httrack.com/,一直連接不上).
一個容易使用的站點映像軟件,能將網站傳送到本地目錄,並且會將所有相關鏈接重新組織,以便順利的離線瀏覽。KHttrack(http:
//www.nongnu.org/khttrack/index.html)是HTTrack的KDE包裝。
cURL is a
command line tool for transferring files with URL syntax, supporting
FTP, FTPS, TFTP, HTTP, HTTPS, TELNET, DICT, FILE and LDAP. curl
supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
form based upload, proxies, cookies, user+password authentication
(Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
proxy tunneling and a busload of other useful tricks.
Fedora
Core操作系統提供了ftp客戶端工具/usr/bin/ftp,不過這個工具使用起來不是非常方便。本文介紹一種在世界上廣泛使用的ftp命令行客戶
端軟件ncftp,他提供更方便、快捷、強大的功能,使我們在使用ftp服務的時候更得心應手。ncftp廣泛應用於各個版本的Linux上。ncftp
和傳統的ftp相比,主要有以下改進或變化:
1、子目錄下載,採用遞歸的方法,下載整個目錄及其子目錄。
2、支持斷點續傳。一次傳輸沒有完成,下次能接着傳輸未完成的文件。
3、匿名ftp自動登錄。目前大部分ftp站點都能匿名登錄,ncftp能自動登錄(默認方式)。
...
wxDFast也是個圖像化的下載工具,支持多線程、斷點續傳等功能,基於wxWidgets,最大特點是下載速度快。
FlashGot
- Best Firefox Download Manager
Integration.一個下載管理器,將瀏覽器(Mozilla/Firefox/Flock/Thunderbird)和一些下載工具(GUI的
wxDFast/D4X/KGet等,CLI的wget/cURL/WellGet[適合於邊下載邊播放電影]等)集成起來,使得下載操作就像
視窗系統下用netants/FlashGet那樣簡單。
我在Linux下經常下載一些新鮮軟件嘗試,不過瀏覽器
Firefox常常打不開鏈接或下載失敗,尤其是隔了防火牆訪問SourceForge之類的較慢站點;而這些鏈接在視窗系統下是能下載的,雖
然速度慢一點。用yum升級系統,常出現“http:
//fedora.cs.wisc.edu/pub/mirrors/linux/download.fedora.redhat.com/pub/fedora/linux/core/updates/5/i386/vim-minimal-7.0.042-0.fc5.i386.rpm:
[Errno -1] Header is not
complete.”類似的錯誤。而gFTP這樣的FTP客戶端GUI常常這兒或那兒工作得不對勁。用NcFTP或cURL一般能解決這些問題。
(注:FTP的URL舉例:ftp://book:[email protected]/book_h/20060828/c69318f9-1bcb-
4a11-8808-1daca711db4d.chm)
CHM是視窗系統平臺幫助文件標準格式,有許多電子書籍(甚至許多關於
Unix/Linux的)以此格式發佈.Linux平臺上有一些閱讀/編輯此格式的工具.KchmViewer基於Qt,獨立於KDE/Gnome.我在
make時參照README加上了選項"--with-kde"才編譯成功,否則因爲ld未找到Xext庫而失敗.能把.chm格式關聯到
KchmViewer,在FedoraCore4下面這麼做:右鍵單擊一個文件,然後選屬性,再點打開方式,選擇添加,然後在自定義命令裏面自己寫上
kchmviewer即可.
mht是IE另存的一種Web Archive格式,他將html/圖片等存儲在單一文件內.
Linux平臺的kmhtConvert能將其轉化爲Konqueror(KDE的一個瀏覽器)支持的war格式(再把此格式關聯到
Konqueror).
Konqueror中這樣創建war:工具->存檔網頁.kmhtConvert實現了以下格式的相互轉化:(*.mhtml, *.mht,
*.eml, *.war).
大家都知道網頁格式一般爲.htm,.html,.shtml三種格式,其中三種格式的網頁代碼都是通用的.SHTML和HTML的差別在於shtml是
一種採用了Server Side
Include(SSI,服務器端包含指令)技術的文件。大多數(尤其是基於Unix平臺)的WEB服務器如Netscape Enterprise
Server等均支持SSI命令。
和視窗系統相比,Linux上的詞典、翻譯工具比較少。星際譯王StarDict是利用GTK
(GIMP
TOOLKIT)研發的國際化的、跨平臺的詞典工具,他也能安裝在視窗系統上,不過,安裝前首先要安裝GTK+環境。星際譯王的詞典要在安裝完程
序之後才能下載和設置。官方網站上的這個頁面:http:
//stardict.sourceforge.net/Dictionaries_zh_CN.php,就有非常多中英詞典的下載地址。To
install these tarball dictionaries, do this:(1)tar -xjvf a.tar.bz2
(2)mv a /usr/share/stardict/dic.我下載安裝了朗道英漢字典5.0,朗道漢英詞典5.0,牛津辭典。
你能在 http://www.xml-dev.com/blog/#19 找到許多好用的XML編輯器。
KXMLEditor是基於KDE的XML顯示和編輯工具。啓動命令kxmleditor。

些公司也發佈比商業版功能少但免費的版本:Eclipse的XMLBuddy插件標準版(www.xmlbuddy.com/,提供以下編輯功能:格式
化、用戶可設置的語法着色、DTD 驅動的代碼輔助、驗證及同步的提綱視圖格式化功能),視窗系統平臺的XMLSpy家庭版(Home
Edition,www.altova.com/),基於Java的XMLmind標準版(Standard
Edition,www.xmlmind.com/,網上有中文版)。只發布商業版本的有oxygen(www.oxygenxml.com/)
Rather
than writing DocBook XML documents by hand using a text editor like
notepad or vi, it is often conveinent to use an XML editor with a
point-and-click graphical user interface (GUI). This tutorial covers
the use of one such editor, XMLMind’s XML Editor (XXE), to create
DocBook XML documents.
ArgoUML是100%基於J2SE研發的UML建模工具,支持UML1.4所有7類
圖,支持導入導出XMI,支持導出成PNG等多種圖像文件,支持代碼生成,不支持逆向工程,不支持C++。
FedoraCore4附帶的Umbrello是基於KDE的,在保存和加載XMI文件時非常慢。編譯1.5.1時居然提示我編譯器版本被他列入了黑名單以
防止KDE崩潰,需求我更換其他版本編譯器。gcc (GCC) 4.0.0 20050519 (Red Hat
4.0.0-8)。我通過SVN下載了gcc,但擔心把系統搞壞了,不敢弄。
Win32平臺上的StarUML是個開源的UML/MDA平臺,據說非常不錯(我用了一下,確實不錯),下載地址:http://www.plasticsoftware.com/。
注意:各工具導出的XMI並不完全兼容,可能導致信息丟失甚至解析錯誤!
webmin是Unix平臺上的服務器管理工具,能管理HTTP,FTP,SAMBA等.有許多插件可用.我選擇了"Start at boot",端口號默認10000.但沒有識別我後來安裝的Apahce,不知道怎麼回事?
jEdit
是基於Java的文本編輯器(自然地在windows,Linux上都可用),支持多種語言的語法着色,就象視窗系統上的UEStudio和
EditPlus相同能作爲一個簡單的IDE.有許多插件可用.(FedoraCore4附帶JRE版本1.4.2,jEdit1.4.3pre3運行
不起來:Out of memory...。從SUN下載JDK1.5或JRE1.5安裝即可)
這兒是Linux內核2.6完整的UML文件,但似乎不實用:http://www.softwarerevolution.com/jeneral/open-source-docs.html

中Office2004和MS
Office文件格式兼容性非常好。有Linux平臺的試用版免費下載。在FederaCore4上安裝失敗,提示未找到
"libgnomeui.so.32"。把FederaCore4光盤上的ORBit-0.5.17-15.i386.rpm和gnome-libs-
1.4.1.2.90-46.i.386.rpm安裝上去就OK了。永中Office要安裝自帶的JVM,不管PC上是否安裝過。
FC5上安裝永中20004Trial過程崩潰;安裝2007Beta版重是在停留在解壓縮階段,按照永中論壇的一個帖子搞定了。
除了
FC系統自帶的up2date以外,我們更有更爲強大的在線升級工具 yum 和 apt-get
可用。apt和yum相比,apt歷史更久,且不限於RPM格式的包,可用於多個Linux Release。yum 工具是Fedora
推薦使用的在線升級更新軟件包的工具,在安裝系統時,一般都是默認安裝。主要資源有 freshrpms.net和
rpm.livna.org。例如安裝anjuta: yum install anjuta。幫助:yum --help。
WireShark
(原名Ethereal)是個功能強大的協議分析器。最重要的特性:(1)Capture Filter,(2)Display
Filter,(3)Capturer停止條件(時間、包數、大小),Capture
File存儲形式(多文件循環利用)(這個功能比視窗系統上的安捷倫Agilent還要強!我用了0.99.3及之前版本,此功能經常導致軟件崩
潰)(4)允許指定接口抓包,常用的接口包括以太接口、Lookback接口、所有接口(5)支持tcpdump等許多其他協議分析器的記錄格式,(6)
支持多達759種協議,(7)捕捉報文能夠全部或部分存儲、導出、打印,(8)可運行於所有流行的OS上。Ethereal從版本0.99.1開始更名爲
WireShark。能同時運行多個Wireshark在同一接口上抓包--這樣便於從多個角度觀察網絡流量,例如區分多個IPCam的流量以便於判斷
哪個斷線了。鑑於WireShark的多文件循環存儲功能有BUG,能用tcpdump或命令行方式的Wireshark,直接把報文打印到
stdout,不必考慮尺寸限制--缺點是瀏覽報文不如GUI方式直觀。
Ethereal® is used by network
professionals around the world for troubleshooting, analysis, software
and protocol development, and education. It has all of the standard
features  you would expect in a protocol analyzer, and several features
not seen in any other product. Its open source license allows talented
experts in the networking community to add enhancements. It runs on all
popular computing platforms, including Unix, Linux, and 視窗系統.
企鵝輸入法fcitx,比FedoraCore4自帶的智能拼音好用多了.
Linux
是非常不錯的OS,但現實環境有許多平時工作要用的軟件都必須在視窗系統環境下運行,所以還是沒有辦法使用Linux。
其實安裝了WINE即可使用exe檔,也能使用ie、word、execl、powerpoint、photoshop、adobe
acrobat......
IEs4Linux is the simpler way to have Microsoft Internet Explorer running on Linux. What is the target public?
    * WebDesigners that want to move to Linux but still need to test their sites on IE.
    * People who have to open IE-only sites
我爲了在WINE上安裝IE6,用winetools幾次都出錯。網上有人說用EasyWine也總是出錯。最後用IEs4Linux輕鬆搞定!
安裝BII的NetCam客戶端後提示缺少MSVCP60.dll,拷貝過來後運行又發生"run time error"。看來用wine運行任意一個視窗系統上的exe不是那麼容易!
偶然發現了一個內部網搜索引擎ht://Dig在http://www.htdig.org/。http://www.gnu.org/就是用他作爲站內搜索引擎。這個軟件在做web站點時可能有用。

是FedoraCore4光盤上有的,能從FC4-i386-DVD.iso文件中提取(mount選項-t iso9660 -o
loop),也能從Redhat提供的映像站點下載rpm來安裝:http:
//fedora.redhat.com/download/mirrors.html。通過RPM名字或包含的某共享庫名字查找RPM在網站
rpmfind.net, rpm.pbone.net和www.rpmseek.com。
今天偶然發現有Fortran和Pascal
代碼到C代碼轉化工具f2c和p2c。記得以前聽說過Java代碼到C#代碼的轉化工具。“如果你有一些用 FORTRAN 或 Pascal
寫的代碼要用 C 重寫的話, f2c 和 p2c 對你非常有用. 這兩個程式產生的 C 代碼一般不用修改就直接能被 GCC 編譯.如果要轉換的
FORTRAN 或 Pascal 程式比較小的話能直接使用 f2c 或 p2c 不用加所有選項. 如果要轉換的程式比較龐大,
包含非常多文件的話你可能要用到一些命令行選項. ”
Zope,Z Object Publishing
Environment,他即是http服務器,又是數據庫,又包含腳本編程語言。Zope是一種支持多種平臺開源的Web應用服務器軟件,他提供了完善
的功能和強大的動力,適用於構建各種類型的Web應用,從小型網站到企業級分佈式網絡應用都有Zope的用武之地。Zope在許多方面都超過了ASP、
PHP、JSP等傳統方法,是一套優秀而完整的解決方案。本專題詳述Zope的應用研發,帶你領略Zope的強大功能。
Zope是個應用服務
器, 他是個讓你的應用被英特網訪問(如用你的web瀏覽器)的平臺. 這樣Zope可在內部網或英特網上提供內容.非常適合內容管理和羣件系統,
Zope被認爲這個市場最有效的工具之一. "Zope在創建和管理動態基於web的商務應用(如內部網和門戶網)等方面,使團隊協作成爲可能."
(Zope.org)
Virtual Network Computing (VNC) allows one to view
and operate the console of another computer remotely accross the
network.
RealVNC(www.realvnc.com)和TightVNC(www.tightvnc.com)在Linux和視窗系統上都有
Client/Server合一的版本。我在視窗系統上安裝TightVNC作爲VNC
Server,設置非常簡單:服務器設置只需要設置密碼即可。Linux上運行VNC客戶端在訪問時指定服務器IP並提供密碼即可。 Fedora
Core 5集成2個VNC客戶端:krdc和“終端服務客戶端”,都在Internet分類下面。
在windows中也由一套著名的網絡遙控軟件——Symantec公司推出的pcAnywhere。

份是系統管理中最艱鉅、最容易被忽略的工作之一,同時也是最重要的工作之一。備份是防禦硬件故障、非法入侵和系統安全的最大威脅??終端用戶的最後一道防
線。有許多備份系統價值數千美元,他們使用到處都是 Bug 的專有版權軟件將數據存入昂貴的磁帶機中,而實際上有更好的方法:Rsync
和廉價的磁盤陣列。
對於 VMWare、Virtual PC
這些虛擬機軟件,可能大家都比較熟悉。今天我要介紹的是另一個虛擬機軟件??VirtualBox。VirtualBox 是一款功能強大的 x86
虛擬機軟件,他不僅具有豐富的特色,而且性能也非常優異。更可喜的是,VirtualBox 於數日前走向開源,成爲了一個發佈在 GPL
許可之下的免費軟件。大小隻有11M。我在FC6上運行虛擬機失敗:
Starting VirtualBox kernel module
FATAL: Error inserting vboxdrv
(/lib/modules/2.6.20-1.2944.fc6/misc/vboxdrv.ko): Invalid module format.
qRFCView is a viewer for IETF RFCs. Advantages are:
    * automatic table of content, with direct opening of section;
    * handling of RFC internal cross-references;
    * automatic downloading of a referenced RFC from the IETF web site on a simple click;
    * caching of RFC in a local directory;
    * tab-browsing of RFC;
    * searching.
It is available for Linux and 視窗系統 operating system (and potentially MacOS X).
我在視窗系統上用過幾個盜版的或免費的RFC瀏覽器,但他們功能都不如qRFCView強大。
[RFC資源]
周詳列表(約7M)    http://ietfreport.isoc.org/rfclist.html
簡明列表(約2M)    http://ietfreport.isoc.org/rfcindex.html
TXT格式        http://www.ietf.org/rfc/rfc###.txt
PDF格式        http://www.faqs.org/ftp/rfc/pdf/rfc###.txt.pdf
RPM打包        在http://rpmfind.net找到了rfc-2007.4.14-1.noarch.rpm
sipsak:
SIP Swiss Army Knife, very useful test utility (Linux).
SIPSAK是個小的命令行工具,用於研發者和系統管理員測試SIP系統。可對SIP應用和設備進行簡單的測試。sipsak結合Python,
Perl之類的腳本語言,能快速構建一個簡單測試。http://sipsak.org/上的cdt.pl就是這方面的例子。這比起僅使用腳本語言,省
去了認證、發送ACK、DNS解析等麻煩。
SIPp: a powerful SIP performance testing
tool sponsered by HP. Its main features are basic SIPStone scenarios,
TCP/UDP transport, customizable (xml based) scenarios, dynamic
adjustement of call-rate and a comprehensive set of real-time
statistics.
另外,在http://www.sipcenter.com/,
http://www.sipforum.org/,
http://www.cs.columbia.edu/sip/等網站收集SIP相關大量信息。http:
//www.ee.oulu.fi/research/ouspg/protos/testing/c07/sip/按照GPL發佈了SIP報文
Torture(拷問,rfc4475)測試用例。
Bison的-g選項輸出語法的自動機的VCG定義。 Visualization
of Compiler
Graphs。以下兩個地方有相關工具信息:http://rw4.cs.uni-sb.de/~sander/html/gsvcg1.html,
http://vcg.sourceforge.net/,directory.fsf.org/Xvcg.html。似乎函數調用關係也能用這個表
達,見http://web.mit.edu/fortran/www/vcg.html。
BuildBot基於Python。
BuildBot是分佈式結構,master監視若干slaves(監視狀態,下發命令,蒐集結果),各個slave按照指示執行
update/compile/test並返回結果。Python和其他許多項目(Python的持續構建報告http:
//www.python.org/dev/buildbot/;wireshark的構建報告http:
//buildbot.wireshark.org/trunk/)利用他做持續構建。最簡單的調度器是Periodic,每隔N秒(無論庫有無變化)呼
叫slave一次
;其次是Scheduler,每次注意到庫變化都呼叫slave一次;最複雜是Nightly,注意到庫變化後在特定時間點呼叫slave一次。
我嘗試了一下BuildBot,做到了Periodic式持續構建,但沒有做到Scheduler式構建--庫變動後,WEB上一直看不到新Build動作,似乎SVNProller檢測不到庫的變化?
我們小組目前用的Autobuild機制修改爲基於BuildBot來實現,好處不大,因爲BuildBot更適合於那些需要在多個環境下編譯和測試的軟件項目。
dogtail
(http://people.redhat.com/zcerza/dogtail/index.html) is a GUI test tool
and automation framework written in Python. It uses Accessibility
(a11y) technologies to communicate with desktop applications. dogtail
scripts are written in Python and executed like any other Python
program. Both dogtail and LDTP (Linux Desktop Testing Project) are test
tools that use the same underlying technology (AT-SPI). Beyond that
fact, there is no current relationship between dogtail and
LDTP.(我最初是在http://directory.fsf.org/devel/prog/Python/這個工具發現這個工具的簡介。後來發現
了marathon--一個基於Python和Java的測試Java Swing
GUI的測試工具。其實以上這些GUI測試工具的測試步驟都是如下三步:Record[錄製腳本]->Refactor[調整]->
Replay[重放])
pywinauto(https://sourceforge.net/projects/pywinauto/)
is 視窗系統 GUI automation with Python. No pre-recording or window
capture needed before use - just code and run :-)
SIP
(http://riverbankcomputing.co.uk/sip/index.php) is a tool for
automatically generating Python bindings for C and C++ libraries. It
was originally developed to create PyQt, the Python bindings for the Qt
toolkit, but can be used to create bindings for any C or C++ library.
可yum安裝,名稱Python-SIP。
SIP is included with all of the major Linux distributions. However, it may be a version or two out of date.
PySWT
(http://www.cs.nyu.edu/zilin/pyswt/pmwiki.php?n=PySWT.Introduction)是用SIP
擴展Python的一個好例子(他包裝了Eclipse採用的SWT庫,這只是作者做的原始版本而已)。這個頁面比較了SWIG和SIP兩種包裝方法,認
爲SIP更易用。
PyChecker is a tool for finding bugs in python source
code. It finds problems that are typically caught by a compiler for
less dynamic languages, like C and C++. It is similar to lint. Because
of the dynamic nature of python, some warnings may be incorrect;
however, spurious warnings should be fairly infrequent.
Pylint
is a python tool that checks if a module satisfies a coding standard.
Pylint can be seen as another PyChecker since nearly all tests you can
do with PyChecker can also be done with Pylint. But Pylint offers some
more features, like checking line-code’s length, checking if variable
names are well-formed according to your coding standard, or checking if
declared interfaces are truly implemented, and much more (see the
complete check list).
Pyreverse is a set of tools for reverse
engineering Python code. So far, it features dependency analysis tools,
unittest skeleton generation, quick UML like diagrams generation and
XMI generation for importation in a UML modeling tool. A special module
can be used to generate files readable by Argo UML.
Winpdb - An
Advanced Python Debugger. Winpdb is an GPL Python debugger, with
support for smart breakpoints, multiple threads, namespace
modification, embedded debugging, password encrypted communication and
speed of up to 20 times that of pdb.
他基於wxPython。我用了一下,感覺比Python自帶的IDLE的調試功能更強,更好用,速度也更快(IDLE裏面執行一行代碼慢得像蝸牛)。
Winpdb只有非常少的在線文件,啓動命令:"_winpdb.py
-t"。調試器Launch一個Python腳本時使用的就是啓動調試器時的那個Python解釋器,似乎沒有辦法更換。
pydb
is an expanded version of the Python debugger loosely based on the gdb
comand set. It also has all of the features found in an earlier version
of pydb.py that was distributed with the debugger GUI ddd.
早期的pydb是DDD的一個插件,而目前的版本基於gdb命令行,所以還能集成到Emacs中。
免費的Python
IDE非常多,我選擇了SPE(http://pythonide.stani.be/)。他基於wxPython,集成UML,
語法檢查工具PyChecker, 調試器Winpdb, GUI設計器wxGlade和XRC, 3D建模器和遊戲引擎Blender &
more...我用了一下,他像Python自帶的IDLE那樣有命令行,但編輯代碼等功能好了十萬八千里,顯示漢字沒問題。
SER網站
Download頁更有幾個相關的不太成熟的小項目:(1)媒體服務器SEMS用作VoiceMail服務器、會議等應用(RFC
4458等有相關規範);(2)RTPProxy作爲會話雙方的RTP中轉站,用於使RTP穿透NAT。--一個替代品是http:
//mediaproxy.ag-projects.com/的MediaProxy。
NullHttpd是個微型的HTTP Server。如果需要在C代碼中嵌入HTTP Server時,能考慮用上他--就像其主頁聲明的:這個server並不那麼可靠,不要在涉及穩定性或安全性的環境中用他。
wxWidgets
lets developers create applications for Win32, Mac OS X, GTK+, X11,
Motif, WinCE, and more  using one codebase. It can be used from
languages such as C++, Python, Perl, and C#/.NET. Unlike other
cross-platform toolkits, wxWidgets applications look and feel native.
博客http://le4rnin9.cublog.cn上有作者對SIPp,OpenSER,Asterisk等的研究資料。
OpenDNS(http://www.opendns.com/)提供了兩個DNS Server 208.67.222.222和208.67.220.220,解析速度非常快。
               
發佈了27 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章