<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件是對質量的不懈追求

    linux庫管理

     Linux下的庫文件分為共享庫和靜態(tài)庫兩大類,它們兩者的差別僅在程序執(zhí)行時所需的代碼是在運行時動態(tài)加載的,
      還是在編譯時靜態(tài)加載的。區(qū)分庫類型最好的方法是看它們的文件后綴,通常共享庫以.so(Shared Object的縮寫)結尾,
      靜態(tài)鏈接庫通常以.a結尾(Archive的縮寫)。在終端缺省情況下,共享庫通常為綠色,而靜態(tài)庫為黑色。

    庫操作命令

      Linux庫操作可以使用命令完成,目前常用的命令是ldd和ldconfig。

     1.ldd
      ldd是Library Dependency Display縮寫,它的作用是顯示一個可執(zhí)行程序必須使用的共享庫。

      $ ldd /usr/bin/mesg
      libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7eaf000)
      /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7feb000)

     2.ldconfig
      庫安裝到系統(tǒng)以后,為了讓動態(tài)鏈接庫為系統(tǒng)所認識及共享,就需要運行l(wèi)dconfig。ldconfig命令的用途,
      主要是在默認搜尋目錄(/lib和/usr/lib)以及動態(tài)庫配置文件/etc/ld.so.conf內(nèi)所列的目錄下,搜索出可共享的動態(tài)鏈接庫(格式如lib*.so*),
      進而創(chuàng)建出動態(tài)裝入程序(ld.so)所需的連接和緩存文件。緩存文件默認為/etc/ld.so.cache,此文件保存已排好序的動態(tài)鏈接庫名字列表,
      ldconfig通常在系統(tǒng)啟動時運行,而當用戶安裝了一個新的動態(tài)鏈接庫時,就需要手工運行這個命令。

     (1)命令格式
       ldconfig [選項] [libs]

     (2)主要選項
       -v或–verbose ldconfig將顯示正在掃描的目錄、搜索到的動態(tài)鏈接庫,以及它所創(chuàng)建的連接的名字。

       -f CONF 指定動態(tài)鏈接庫的配置文件為CONF,系統(tǒng)默認為/etc/ld.so.conf。

       -C CACHE 指定生成的緩存文件為CACHE,系統(tǒng)默認的是/etc/ld.so.cache,文件存放已排好序的可共享的動態(tài)鏈接庫的列表。

       -p或–print-cache 讓ldconfig打印出當前緩存文件所保存的所有共享庫的名字。

       -r ROOT 改變應用程序的根目錄為ROOT。

       -n ldconfig僅掃描命令行指定的目錄,不掃描默認目錄(/lib、/usr/lib),也不掃描配置文件/etc/ld.so.conf所列的目錄。

      運行沒有選項的ldconfig命令時,用于更新高速緩沖文件。這個命令主要用于高速緩沖DNS服務器(Caching DNS Server)。
      高速緩沖DNS服務器的原理是提供查詢的歷史記錄,并且利用這些記錄來提高查詢的效率。

      當某個查詢是第一次被發(fā)送到高速緩沖DNS服務器時,高速緩沖DNS服務器就將此查詢的整個過程記錄下來,
      在一定的時期內(nèi)用它來回答所有相同的查詢,從而減少整個DNS系統(tǒng)的負擔并且提高查詢速度。

    庫的升級

      Linux系統(tǒng)軟件更新很快,新的核心幾乎每幾個星期就公布一次,其它軟件的更新也是非常頻繁。多數(shù)情況下,
      盲目跟隨潮流的升級并不必要,如果確實需要新版本的特性時再升級。換句話說,不要為了升級而升級。
      Linux系統(tǒng)中多數(shù)軟件都是用共享庫來編譯的,其中包含了在不同程序之間共享的公用子例程。

      在運行某個程序時,如果看到如下信息:“Incompatible library version.”則表明需要將該庫升級到程序所需要的版本。
      庫是向下兼容的,也就是說,用老版本庫編譯的程序可以在新安裝的版本庫上運行,反之則不行。

      Linux庫函數(shù)的升級是一項重要的工作,往往與其它軟件包的升級有一定關聯(lián)作用,所以操作前一定要備份文件。
      下面看一下如何把Glibc 2.2.4.13升級至2.3.2版本,其過程如下:

      1.下載.gz壓縮文件并解壓

        在GUN C網(wǎng)站下載的四個.gz壓縮文件,解壓至一臨時目錄中:
        cd /usr/caolinux
        tar xzvf glibc-2.3.2.tar.gz
        cd glibc-2.3.2
        tar xzvf ../glibc-linuxthreads-2.3.2.tar.gz
        tar xzvf ../glibc-crypt-2.3.2.tar.gz
        tar xzvf ../glibc-localedata-2.3.2.tar.gz

      2.建立庫函數(shù)的安裝目錄
        mkdir /usr/higlibc
        cd /usr/higlibc

      3.建立編譯目錄
        mkdir cao
        cd cao
        ./configure –enable-add-ons=linuxthreads,crypt,localedata -prefix=/usr/higlibc

      4.編譯與安裝
        make
        make check
        make install

      5.改變數(shù)據(jù)庫的鏈接
        ln -s /usr/higlibc/lib/ld-linux.so.2 /lib/ld-linux.so.2

        然后,修改/etc/ld.so.conf,加入一行/usr/higlibc/lib,執(zhí)行下面代碼:
        ldconfig -v

        更新/etc/ld.so.cache的內(nèi)容,列出每個庫的版本號,掃描目錄和所要創(chuàng)建及更新的鏈接。

      6.更改GCC設置
        cd /usr/lib/gcc-lib
        cp -r i386-redhat-linux higlibc

      7.更新符號鏈接
        cd /usr/higlibc/include
        ln -s /usr/src/linux/include/linux
        ln -s /usr/src/linux/include/asm
        ln -s /usr/X11R6/include/X11

      8.測試并完成

    posted on 2009-12-18 09:25 BlakeSu 閱讀(159) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 久久久无码精品亚洲日韩蜜臀浪潮 | 国产青草亚洲香蕉精品久久| 2021国产精品成人免费视频| 久久精品国产亚洲AV香蕉| 无码国产精品一区二区免费vr| 亚洲精品乱码久久久久久中文字幕| 国产免费福利体检区久久| 日日噜噜噜噜夜夜爽亚洲精品| 4hu四虎免费影院www| 在线观看亚洲精品福利片| 国产高潮久久免费观看| 亚洲精品无码久久久久| 久久久久久国产精品免费免费男同| 久久91亚洲人成电影网站| 国产精品免费无遮挡无码永久视频| 亚洲国产老鸭窝一区二区三区| 亚洲香蕉免费有线视频| 久久久久亚洲国产| 免费a级黄色毛片| 伊人免费在线观看| 亚洲色图综合网站| 午夜色a大片在线观看免费| 黄色免费网址大全| 亚洲av最新在线网址| 亚洲免费视频网址| 亚洲国产区男人本色| 亚洲视频在线免费| 免费A级毛片无码视频| 亚洲高清视频在线| 亚洲精品偷拍视频免费观看 | 亚洲综合偷自成人网第页色| 在线观看亚洲免费| 拍拍拍无挡视频免费观看1000| 亚洲黄色网站视频| 麻豆国产人免费人成免费视频 | 一级特级女人18毛片免费视频| 亚洲AV无码一区二区二三区入口| 国内免费高清在线观看| 国产99久久久国产精免费| 亚洲精品mv在线观看| 又黄又爽的视频免费看|