日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

對話 UNIX,第 12 部分: 自己動手完成項目( 二 )


軟件包中有價值的內(nèi)容
作為一個說明性的和典型的示例,讓我們配置、構(gòu)建并安裝 SQLite——一個實現(xiàn)結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)數(shù)據(jù)庫引擎的小型的庫 。SQLite 不需要進行任何配置即可使用,并且可以完整地嵌入到任何應(yīng)用程序中,而數(shù)據(jù)庫則包含在單個文件中 。許多編程語言都可以調(diào)用 SQLite 以實現(xiàn)數(shù)據(jù)的持久化 。SQLite 還包括一種用于管理 SQLite 數(shù)據(jù)庫的、名為 sqlite3 的命令行實用工具 。
要開始學(xué)習(xí)這部分內(nèi)容,首先下載 SQLite(請參見參考資料) 。選擇最新的源代碼包,并將其下載到您的計算機中 。(在撰寫本文時,SQLite 的最新版本是版本 3.3.17,于 2007 年4 月 25 日發(fā)布 。)這個示例使用了 http://www.sqlite.org/sqlite-3.3.17.tar.gz 中存儲的文件 。
在您獲得了該文件之后,請對其進行解壓縮 。.tar.gz 擴展反映了該存檔文件是如何構(gòu)造的 。在這個示例中,它是一個壓縮了的 tar 存檔文件 。后面的擴展 .gz,表示 gzip(壓縮);前面的擴展 .tar,表示 tar(一種存檔格式) 。要提取該存檔文件的內(nèi)容,只需要對其進行反向處理即可,也就是首先解壓縮,然后打開該存檔文件:
$ gunzip sqlite-3.3.17.tar.gz
$ tar xvf sqlite-3.3.17.tar
這兩個命令在一個名為 sqlite-3.3.17 的新目錄中創(chuàng)建了原始源代碼的一個副本 。順便說明一下,.tar.gz 文件格式是非常常見的(稱為 tarball),并且您可以使用 tar 命令直接解壓縮 tarball 文件:
$ tar xzvf sqlite-3.3.17.tar.gz
這一個命令和前面的兩個命令是等價的 。
接下來,將目錄更改為 sqlite-3.3.17,并使用 ls,以列出其中的內(nèi)容 。您應(yīng)該看到與清單 1 所示類似的清單:
清單 1. SQLite 包的清單
$ ls
Makefile.in contrib publish.sh
Makefile.Linux-gcc doc spec.template
README ext sqlite.pc.in
VERSION install-sh sqlite3.1
aclocal.m4 ltmain.shsqlite3.pc.in
addopcodes.awk main.mk src
art mkdll.shtclinstaller.tcl
config.guessmkopcodec.awktest
config.sub mkopcodeh.awktool
configuremkso.sh www
configure.acnotes
其中的源代碼和 SQLite 補充文件經(jīng)過了很好組織,并且模擬了大部分的軟件項目分發(fā)源代碼的方式:
【對話 UNIX,第 12 部分: 自己動手完成項目】README 文件對該項目進行了描述,并且通常用于說明如何構(gòu)建該軟件 。(README 文件還詳細地介紹了使用條款,或者許可證、適用情況 。許多項目的許可證代碼都符合 GNU 公共許可版本 2 中的條款,即所謂的“copyleft許可證 。在許可證與您打算如何使用該軟件之間可能存在一定的沖突,如果您對此有任何疑問,最好請教一下合適的法律顧問 。)
src 目錄中包含了相關(guān)的代碼 。
test 目錄中包含了一組測試,以驗證該軟件的操作是否正確 。在開始構(gòu)建或者進行了任何修改之后,請運行這些測試,這樣可以增加對該軟件的信心 。
contrib 目錄中包含核心 SQLite 開發(fā)團隊所沒有提供的附加軟件 。對于像 SQLite 這樣的庫,contrib 中可能包含一些常用語言(如 C、Perl、PHP 和 Python)的編程接口 。它可能還包括圖形用戶界面(GUI)包裝,以及更多的內(nèi)容 。
在其他文件中,Makefile.in、configure、configure.ac 和 aclocal.m4 用于生成在您的 Unix 版本中編譯 SQLite 軟件的腳本和規(guī)則 。如果這個軟件足夠簡單,那么要編譯其代碼,可能只需要一條簡單的編譯命令即可 。但是,因為存在如此之多的 UNIX 變種(Mac OS X、Solaris、Linux、IBM?AIX?和 HP/UX 等等),所以必須對宿主計算機進行分析,以確定它的功能及其實現(xiàn) 。例如,郵件閱讀應(yīng)用程序可能會嘗試確定本地系統(tǒng)是如何存儲郵箱的,并包含對該格式的支持 。

推薦閱讀