2011-05-31 49 views
1

在bash中檢查是否安裝了c庫的最佳方法是什麼?檢查c庫

每評論,更清晰:
我運行一個安裝腳本,看起來對的libexpat頭文件(expat.h)
目前,它是通過這樣做:

if ! locate libexpat.so 1> /dev/null; then 

然而,它應該尋找expat.h,但是這仍然需要首先更新mlocate db。

有沒有更好的辦法?

+0

沒有足夠的上下文。 – 2011-05-31 20:20:03

+3

'whereis -b libc'? 'find/-name libc'? – cnicutar 2011-05-31 20:21:39

+0

@cnicutar,從未見過'whereis -b'之前:)整潔。謝謝。 – sarnold 2011-05-31 20:23:30

回答

1

我發現的最好的是@ cnicutar的評論,謝謝。
具體要做到這一點在bash腳本:

expat_loc=`whereis -b expat.h | cut -c8-` 
if [[ -e "$expat_loc" ]]; then 
    #Something something 
fi; 
0

如果你需要運行時,你需要一個特定的版本來運行一些東西。嘗試運行這些東西。
如果你需要頭文件,試着編譯一些東西。

2

你可以像autoconf那樣做(或者更確切地說configure腳本生成的autoconf),並測試你是否可以編譯使用該庫的C程序。

如果您沒有安裝編譯器或開發工具,您的選項會受到更多限制。

目前還不清楚您是否想要在圖書館的位置之外進行搜索,或者只關注將其安裝在主庫目錄中。另外,您是僅僅在尋找共享庫,還是在尋找靜態庫 - 命名約定根據您的要求以及您所使用的機器類型而有很大差異(Linux和Solaris vs AIX vs MacOS X與HP-UX(舊版,適用於PA-RISC)和Windows相比)。如果你正在尋找靜態庫,你將很難在沒有編譯器的情況下使用它們(也可能是頭文件)。如果您正在尋找共享庫,那麼如果您在其他機器上編譯該程序並將其複製到目標機器,則可以使用那些沒有開發工具的工具。