linux庫
A. linux libidn是什麼庫
GNU Libidn 是一款通過IETF國際域名(IDN)實施字元串預處理、Punycode 和 IDNA規格定義的工具。它用於國際化的字元串(如域名標簽,用戶名和密碼),以增加字元串輸入和字元串比較的工作。該庫包含一個通用的字元串預處理實施,正常化的Unicode3.2 NFKC,映像和禁止的字元,雙向字元處理。它包含iSCSI、Kerberos 5、Nameprep、SASL 和 XMPP配置文件,通過IDNA的支持兼容Punycode 和ASCII編碼(ACE)。
B. linux中庫文件的作用
yum是一個軟體安裝源,rpm是一個軟體包管理程序。
yum可以在線安裝軟體,可以自動解決依賴性問題。
比如你聯網的情況下要安裝httpd,你就使用yum install httpd
而你在網上下載了rpm包,就使用rpm -ivh httpd.rpm
使用rpm的話,需要自己解決依賴性問題。
C. 如何輕松清除Linux中不需要的存儲庫
在Ubuntu Linux上,使用這個工具可以通過下面兩種方式:
1.從命令行
2.來自Ubuntu軟體(又名GNOME軟體)
打開該工具的命令是software-properties-gtk。如果你不想用命令行,那打開Ubuntu軟體,點擊菜單(它出現在桌面的頂部),選擇Software & Updates。
工具打開後,您將看到六個選項卡(圖A)。
要使用的選項卡是其他軟體。單擊它,您將看到添加的所有第三方存儲庫(圖B)。
為了進行比較,我在已經使用了一年多的Elementary OS上打開了software-properties-gtk工具。第三方存儲庫的數量非常多(圖C)。
要刪除存儲庫,您只需在列表中滾動並取消對不希望包含的內容的檢查。最初,系統會提示您輸入sudo密碼。在此之後,您應該能夠梳理添加的存儲庫(根據需要刪除),而不必再次輸入密碼。您會發現每次取消選中repo時,software-properties-gtk都可能會滾動回到列表的頂部,這個設置不人性化。完成列表後,單擊「關閉」按鈕。然後,系統將提示您重新載入有關可用軟體的信息(也稱為apt更新)。這樣做,一旦更新完成,software-properties-gtk將關閉。就這樣。您已成功清理了存儲庫。
D. linux動態庫和靜態庫的區別
接靜態庫其實從某種意義上來說只不過它操作的對象是目標代碼而不是源碼而已。因為靜態庫被鏈接後庫就直接嵌入可執行文件中了,這樣就帶來了兩個問題。
(1)首先就是系統空間被浪費了。如果多個程序鏈接了同一個庫,則每一個生成的可執行文件就都會有一個庫的副本,必然會浪費系統空間。
(2)再者,一旦發現了庫中有bug,挽救起來就比較麻煩了。必須一一把鏈接該庫的程序找出來,然後重新編譯。
而動態庫的出現正彌補了靜態庫的以上弊端。因為動態庫是在程序運行時被鏈接的,所以磁碟上只須保留一份副本,因此節約了磁碟空間。如果發現了bug或要升級也很簡單,只要用新的庫把原來的替換掉就行了。
但是靜態庫的優點:
編譯後的執行程序不需要外部的函數庫支持,因為所有使用的函數都已經被編譯進去了。
靜態庫的名字一般是libxxx.a(Linux)
動態庫的名字一般是libxxx.so(Linux),有時候也是 libxxx.so.major.minor,xxxx是該lib的名稱,major是主版本號, minor是副版本號。
E. 查看linux當前載入庫文件的命令
ldd <可執行文件名> 查看可執行文件鏈接了哪些 系統動態鏈接庫
nm <可執行文件名> 查看可執行文件裡面有哪些符號
strip <可執行文件名> 去除符號表可以給可執行文件瘦身
如果我們想從可執行程序裡面提取出來一點什麼文本信息的話,還可以用strings命令
strings <可執行文件名>
Linux操作系統上面的動態共享庫大致分為三類:
1、操作系統級別的共享庫和基礎的系統工具庫
比方說libc.so, libz.so, libpthread.so等等,這些系統庫會被放在/lib和/usr/lib目錄下面,如果是64位操作系統,還會有/lib64和/usr /lib64目錄。如果操作系統帶有圖形界面,那麼還會有/usr/X11R6/lib目錄,如果是64位操作系統,還有/usr/X11R6 /lib64目錄。此外還可能有其他特定Linux版本的系統庫目錄。
這些系統庫文件的完整和版本的正確,確保了Linux上面各種程序能夠正常的運行。
2、應用程序級別的系統共享庫
並非操作系統自帶,但是可能被很多應用程序所共享的庫,一般會被放在/usr/local/lib和/usr/local/lib64這兩個目錄下面。很多你自行編譯安裝的程序都會在編譯的時候自動把/usr/local/lib加入gcc的-L參數,而在運行的時候自動到/usr/local /lib下面去尋找共享庫。
以上兩類的動態共享庫,應用程序會自動尋找到他們,並不需要你額外的設置和擔心。這是為什麼呢?因為以上這些目錄默認就被加入到動態鏈接程序的搜索路徑裡面了。Linux的系統共享庫搜索路徑定義在/etc/ld.so.conf這個配置文件裡面。這個文件的內容格式大致如下:
/usr/X11R6/lib64
/usr/X11R6/lib
/usr/local/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
假設我們自己編譯安裝的ImageMagick圖形庫在/usr/local/ImageMagick目錄下面,並且希望其他應用程序都可以使用 ImageMagick的動態共享庫,那麼我們只需要把/usr/local/ImageMagick/lib目錄加入/etc/ld.so.conf文件裡面,然後執行:ldconfig 命令即可。
ldcofig將搜索以上所有的目錄,為共享庫建立一個緩存文件/etc/ld.so.cache。為了確認ldconfig已經搜索到ImageMagick的庫,我們可以用上面介紹的strings命令從ld.so.cache裡面抽取文本信息來檢查一下:
strings /etc/ld.so.cache | grep ImageMagick
輸出結果為:
/usr/local/ImageMagick/lib/libWand.so.10
/usr/local/ImageMagick/lib/libWand.so
/usr/local/ImageMagick/lib/libMagick.so.10
/usr/local/ImageMagick/lib/libMagick.so
/usr/local/ImageMagick/lib/libMagick++.so.10
/usr/local/ImageMagick/lib/libMagick++.so
已經成功了!
3、應用程序獨享的動態共享庫
有很多共享庫只被特定的應用程序使用,那麼就沒有必要加入系統庫路徑,以免應用程序的共享庫之間發生版本沖突。因此Linux還可以通過設置環境變數LD_LIBRARY_PATH來臨時指定應用程序的共享庫搜索路徑,就像我們上面舉的那個例子一樣,我們可以在應用程序的啟動腳本裡面預先設置 LD_LIBRARY_PATH,指定本應用程序附加的共享庫搜索路徑,從而讓應用程序找到它。
F. linux下的math庫在那個文件夾
首先你要明白 -lm的用意 就是尋找libm.o這個庫的某個函數的所有函數(我估計是sprt吧),尋找完成之後才能進行完整的編譯。而math並不是一個庫 而是函數,函數有時候要多個庫支持,所以要用-lm的方法把所有庫整合一起 才能調用這個函數。
G. linux下的庫是什麼意思
庫相當於資源庫 比如你裝修房子要用地板 就可以看作是庫 是別人已經做好的直接供你使用 而不需要看書鋸木上漆等自己親力親為的工作
H. 請問linux里頭文件與庫文件有什麼區別
頭文件中有函數的申明,庫文件實現函數的定義。
比如,printf函數。使用時應包括stdio.h,打開stdio.h你只能看到,printf這
個函數的申明,卻看不到printf具體是怎麼實現的,而函數的實現在相應的C庫
中。而庫文件一般是以二進制形式而不是C源文件形式提供給用戶使用的。程序
中包括了stdio.h這個頭文件。鏈接器就能根據頭件中的信息找到printf這個函
數的實現並鏈接進這個程序代碼段里。
總結起來就是,庫文件通過頭文件向外導出介面。用戶通過頭文件找到庫文件中
函數實現的代碼從而把這段代碼鏈接到用戶程序中去。
I. linux的 常見庫有哪些
開源的有mySQL postgreSQL 目前主要也就這兩個
商業的就多得太多了 Oracle Sybase DB2 Infomix 等等
J. Linux系統的庫文件一般放在( )目錄下
Linux的系統文件放在/bin、/sbin和/usr目錄下。/bin是比較重要的系統二進制文件,都可以在單用戶模式下執行,cat和ls命令都在這里。
/usr命令包含所有系統類的命令和函數庫,/sbin命令包含的是只能用root用戶才能執行的命令。這三個目錄都是只有root用戶才有寫入許可權。更多命令介紹可查看「Linux命令大全」。