在bash中檢查是否安裝了c庫的最佳方法是什麼?檢查c庫
每評論,更清晰:
我運行一個安裝腳本,看起來對的libexpat頭文件(expat.h)
目前,它是通過這樣做:
if ! locate libexpat.so 1> /dev/null; then
然而,它應該尋找expat.h,但是這仍然需要首先更新mlocate db。
有沒有更好的辦法?
在bash中檢查是否安裝了c庫的最佳方法是什麼?檢查c庫
每評論,更清晰:
我運行一個安裝腳本,看起來對的libexpat頭文件(expat.h)
目前,它是通過這樣做:
if ! locate libexpat.so 1> /dev/null; then
然而,它應該尋找expat.h,但是這仍然需要首先更新mlocate db。
有沒有更好的辦法?
我發現的最好的是@ cnicutar的評論,謝謝。
具體要做到這一點在bash腳本:
expat_loc=`whereis -b expat.h | cut -c8-`
if [[ -e "$expat_loc" ]]; then
#Something something
fi;
如果你需要運行時,你需要一個特定的版本來運行一些東西。嘗試運行這些東西。
如果你需要頭文件,試着編譯一些東西。
你可以像autoconf
那樣做(或者更確切地說configure
腳本生成的autoconf
),並測試你是否可以編譯使用該庫的C程序。
如果您沒有安裝編譯器或開發工具,您的選項會受到更多限制。
目前還不清楚您是否想要在圖書館的位置之外進行搜索,或者只關注將其安裝在主庫目錄中。另外,您是僅僅在尋找共享庫,還是在尋找靜態庫 - 命名約定根據您的要求以及您所使用的機器類型而有很大差異(Linux和Solaris vs AIX vs MacOS X與HP-UX(舊版,適用於PA-RISC)和Windows相比)。如果你正在尋找靜態庫,你將很難在沒有編譯器的情況下使用它們(也可能是頭文件)。如果您正在尋找共享庫,那麼如果您在其他機器上編譯該程序並將其複製到目標機器,則可以使用那些沒有開發工具的工具。
沒有足夠的上下文。 – 2011-05-31 20:20:03
'whereis -b libc'? 'find/-name libc'? – cnicutar 2011-05-31 20:21:39
@cnicutar,從未見過'whereis -b'之前:)整潔。謝謝。 – sarnold 2011-05-31 20:23:30