?? glibc2-howto.txt
字號:
Glibc 2 HOWTO 中文版 原作 Eric Green, ejg3@cornell.edu譯者 Allex Juang, allex@ms2.accmail.com 1.5 版, 1998年 2月 8日 _________________________________________________________________ 這份 glibc 2 HOWTO 內容包括在 Linux 系統上安裝與使用第二版 GNU C Library。 _________________________________________________________________ 1. 簡介 * 1.1 關於 glibc 2 * 1.2 關於這份文件 * 1.3 這份文件的最新改變 2. 選擇你的安裝方式3. 取得函式庫4. 安裝成測試用的函式庫 * 4.1 編譯與安裝 * 4.2 更新 dynamic loader * 4.3 設定 gcc * 4.4 更新標頭檔連結 * 4.5 測試你的安裝 5. 安裝成主要函式庫 * 5.1 由原始碼編譯函式庫 * 5.2 準備安裝 * 5.3 由預先編譯好的套件安裝 * 5.4 由原始碼安裝 * 5.5 更新 gcc specs * 5.6 測試你的安裝 6. 使用非主要的 C 函式庫編譯程式 * 6.1 一個關於使用非主要 C 函式庫的警告 * 6.2 用測試安裝的 glibc 編譯程式 * 6.3 當 glibc 是主要函式庫時用 libc 5 編譯程式 7. 編譯 C++ 程式 * 7.1 用測試的 C 函式庫安裝 libg++ * 7.2 在主要 glibc 下安裝 libg++ * 7.3 使用非主要的 C 函式庫來編譯 C++ 程式 8. 報告臭□9. Specs 檔□例10. 雜項 * 10.1 進一步的資料 * 10.2 貢獻者列表 * 10.3 回饋 * 10.4 Copyright. _________________________________________________________________ 1. 簡介1.1 關於 glibc 2 Glibc 2 是最新版的 GNU C 函式庫。 它目前不需修改就可以在 GNU Hurd ,Linux i386, m68k, 以及 alpha 系統上執行, 而 2.1 版中將加入對 Linux PowerPC, MIPS, Sparc, Sparc 64 與 Arm 等系統的支援。未來將加入 對其它架構及作業系統的支援。 在 Linux 上,glibc 2 是主要版本為 6 的 libc,也就是 Linux libc 5 的後繼 者。 Linux libc 的發展人員想以此逐漸取代 libc 5。 就 2.0.6 來看,glibc 已具有成熟產品的品質。 Glibc 2.1 版 (在不久的將來) 將加入更多的功能, 并移植到更多系統上,足夠當作主流使用。 Glibc 2 有三個選擇性的附加套件: Crypt UFC-crypt 加密套件。 由於出口限制所以要分離出來。 LinuxThreads Posix 1003.1c "pthread" 介面的實作。 Locale data 包含制造使用 glibc 的 internationalization 功能所需 locale 資料 檔案的資料。 強烈建議安裝 Cryt 與 LinuxThreads 這兩個附加套件, 如果不安裝的話,有可 能會與其它系統上的函式庫造成不相容的情形。 (假如你不想使用這兩個附加套 件的話, 那你必須在執行 configure 時加上 --disable-sanity-checks 的選 項) 1.2 關於這份文件 這份文件涵蓋如何在 Linux 系統上安裝 glib 2, 適用對象是那些在 intel-based 機器上使用 libc 5 的使用者。 但是對於其它系統以及其它不同函 式庫 (如 glibc 1) 的使用者, 只要將這份文件中出現的檔名以及系統架構名稱 作適當的代換, 應該也可得到些幫助。 這份 HOWTO 的最新版本的拷貝可在 [1]Linux Documentation Project 或是 [2]http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html 找到。 1.3 這份文件的最新改變 1.5 與 1.4 版的差別: * 由 Ed Bailey 加入索引 * 我的新電子郵件信箱位址 1.4 與 1.3 版的差別: * 將目前狀態由實驗性改成成熟產品。 * 更新發展中的移植列表。 * 更新最新版到 2.0.6。 2. 選擇你的安裝方式 有許多種方式安裝 glibc,你可以安裝成一個測試用的函式庫, 將目前使用的函 式庫當作是內定的, 然後在編譯程式的時候用不同的選項來試用新的函式庫。 用這種安裝方式以後可以輕易的移除 glibc。 (雖然用 glibc 連結的程式在移除 glibc 後都將不能使用) 另外,用這種方式安裝,你必須由原始碼重新編譯, 并 沒有 binary distribution 可以安裝成測試的函式庫。 這樣的安裝請參照 [3] 安裝成測試用的函式庫。 這份文件中所說的另一種方式則是將 glibc 安裝成主要函式庫。 所有新編譯的 程式都將會使用 glibc, 但是你也可以在編譯時用不同的選項而將程式連結到舊 的函式庫。 你可以直接安裝已經編譯好的版本,也可以自己編譯函式庫。 假如 想更改最佳化或是組態選項, 或是想加入已編譯好的版本中未支援的 add-on 的 話, 那你必需取得原始碼并且自己編譯,這個安裝的過程請參照 [4]安裝成主要 的 C 函式庫 Frodo Looijaard 描述了另一種 glibc 的安裝方式。 他的方法是將 glibc 安裝 成次要的函式庫, 然後設定交叉編譯器 (cross compiler) 來使用 glibc。 這 個方式比起這份文件中的測試安裝要復雜的多,但是比較容易連結到 glibc。 這 個方法在他的 [5]Installing glibc-2 on Linux 文件中說明。 假如你現在使用的是 Debian 1.3, 但是不想為了 glibc 而升級到不穩定的版本 , 那麼 [6]Debian libc5 to libc6 Mini-HOWTO 會告訴你如何使用 Debian 的 package 來升級。 假如你要把 glibc 2 安裝到一重要的系統上, 那也許你應使用測試的安裝,或 是在備用系統上試試看。 即使沒有臭□,某些程式在編譯之前仍然需要某些修改 , 原因在於某些函式原型與型態上的改變。 3. 取得函式庫 Glibc 2 包含 glibc package 以及數個附加套件: LinuxThreads、 Locale 與 Crypt, 原始碼在 * [7]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz * [8]ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz * [9]ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz * [10]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz 你需要大約 150MB 的磁碟空間來作完全的編譯與安裝, 核心函式庫的基本安裝 大約要 50MB。 2.0.6 并沒有 binary 的 package, 2.0.4 的 binary package 只有 i386 及 m68k 的版本, 而 2.0.1 for alpha 則可以在以下地方找到: * Intel x86: + [11]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz + [12]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386. tar.gz * Alpha: + [13]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-linux .tar.gz + [14]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha -linux.tar.gz * m68k: + [15]ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin. tar.gz + [16]ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-linu x.bin.tar.gz 由於 cypt 這個附加套件有出口限制,非美國使用者請到 [17]ftp://ftp.ifi.uio.no/pub/gnu 取得。 如果你用的是 RedHat distribution, 那你可以從 [18]ftp://ftp.redhat.com/pub/redhat/ 取得 glibc2 的 rpm。 在 RedHat distribution 5.0 中, glibc 2 是主要的 C 函式庫。 如果你用的是 Debian distribution,那你可以從 [19]ftp://ftp.debian.org/debian/dists/unstable/main/ 取得 glibc2 的 package。檔名是 libc6。 Glibc 2 目前是 Debian 測試版的基本 package, 等 到 Debian 2.0 出來之後將會是主要的 C 函式庫。 4. 安裝成測試用的函式庫 這一節的內容是關於如何將 glibc 2 安裝成測試用的函式庫。 所有編譯的程式 都連結到你目前的函式庫, 除非你給了某些額外的參數才會連結到新的函式庫。 由於路徑被編譯到某些檔案中,你需要由原始碼來安裝這函式庫。 4.1 編譯與安裝 需求 * 約 150 MB 的磁碟空間 * GNU make 3.75 * gcc >= 2.7.2 (最好是 2.7.2.1) * binutils 2.8.1 (假如是 alpha 你還需要 snapshot) * bash 2.0 * autoconf 2.12 (假如你更動了 configure.in) * texinfo 3.11 在一臺安裝有 64MB 記憶體 i586@133 的機器上, 編譯完整的函式庫 (包括附加 套件) 大約須要 3 小時。 而在 i686@200 則須約一個半小時。 解開原始碼 你必需由 archive 中取出原始碼。如此才能編譯它,最好的方式如下: tar xzf glibc-2.0.6.tar.gz cd glibc-2.0.6 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz tar xzf ../glibc-crypt-2.0.6.tar.gz tar xzf ../glibc-localedata-2.0.6.tar.gz 這會將 linuxthreads、 crypt 與 localedata 等目錄放至 glibc-2.0.6 的目錄 底下, 如此 configure 才可以找到這些 add-ons。 設定組態 在 glibc-2.0.6 的目錄底下,建立一個新的目錄 compile,并且 cd 到 compile 底下, 所有的工作都會在這個目錄中完成,這會簡化後續的清除工作。 (發展者似乎并未讓 'make clean' 作得很好) mkdir compile cd compile 執行 ../configure。 要使用父加套件,你必需用 --enable-add-ons 指定, 例 如說 --enable-add-ons=linuxthreads,crypt,localedata。 你也必需指定要安裝的目錄,/usr/i486-linuxglibc2 是個不錯的選擇, 這樣的 configure 命令如下: ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2 編譯與安裝 要編譯與驗證,執行 make make check 假如 'make check' 成功了,安裝函式庫: make install4.2 更新 dynamic loader 1. 建立連結, 從 ld.so 到 /lib/ld-linux.so.2: ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2 當一個檔案連結時,這個函式庫是唯一一個位置固定的。 當穩定的版本出現 的時候, 在 /lib 使用連結也會使得將 glibc 升級為主要函式庫時更為輕 松。 2. 修改 /etc/ld.so.conf。 你需要增加新的函式庫所在的路徑到檔案的最後, 這路徑應該是 <prefix>/lib。 假如用以上的選擇就應該是 /usr/i486-linuxglibc2/lib。 在你修改了 /etc/ld.so.conf 之後,執行: ldconfig -v4.3 設定 gcc 安裝的最後一步是更新 /usr/lib/gcc-lib 以使 gcc 知道如何使用新的函式庫。 首先,你需要復制目前的組態,要知道目前的組態,使用 gcc 的 -v 選項: % gcc -v Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs gcc version 2.7.2.2 這里,i486-unknown-linux 是目前所用的系統,2.7.2.2 則是目前版本。 你需 要將 /usr/lib/gcc-lib/<系統> 復制到新的測試系統目錄: cd /usr/lib/gcc-lib/ cp -r i486-unknown-linux i486-linuxglibc2 到你的新系統目錄以及版本目錄下: cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -