libcurl 版本問(wèn)題查找思路

問(wèn)題現(xiàn)象

curl localhost:9200

curl: (48) An unknown option was passed in to libcurl

意思是執(zhí)行 curl 命令時(shí)輸入了無(wú)效參數(shù)硕糊。

yum

pycurl: libcurl link-time version is older than compile-time version

意思是正在使用的 libcurl 文件敞贡,它的軟鏈接比編譯時(shí)間還要舊留凭。按照我們的普通思維扁达,一般是先編譯好文件毡们,才能做軟連接元旬。

雖然是 2 個(gè)錯(cuò)誤惰匙,但卻是同一個(gè)原因造成的砂吞。

查找原因

定位所有 libcurl.so 文件铛铁,找到一個(gè)自己編譯的 curl-7.21.7隔显,版本比 yum 安裝的 7.29.0 低:

locate -r "/libcurl.so$"

/apps/lib/curl-7.21.7/lib/libcurl.so
/usr/lib64/libcurl.so

定位所有 curl 可執(zhí)行文件

locate -r "/curl$" | grep bin

/apps/lib/curl-7.21.7/bin/curl
/usr/bin/curl

執(zhí)行 curl 命令查看 libcurl 版本

sudo curl --version | grep --color libcurl

curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.21.7 OpenSSL/1.0.0r zlib/1.2.7

可以看到,curl 版本是 yum 安裝的那個(gè)饵逐,但是 libcurl 用的是自己編譯的那個(gè)低版本括眠。使用的版本和編譯時(shí)的編譯信息對(duì)不上,所以就報(bào)這個(gè)錯(cuò)倍权。

curl -V | grep libcurl

curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.21 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3

在環(huán)境變量 PATH 和 LD_LIBRARY_PATH 找不到 /apps/lib/curl掷豺,那么 /apps/lib/curl-7.21.7/lib/libcurl.so 這個(gè)文件是怎么被 curl 優(yōu)先于 /usr/lib64/libcurl.so 找到的捞烟?

我們使用 strace 來(lái)跟蹤一下:

strace curl -V > curl.log 2>&1

使用 vim 打開(kāi)日志,打開(kāi)的同時(shí)定位關(guān)鍵字:libcurl.so

vim curl.log +/libcurl.so

發(fā)現(xiàn)是 open /etc/ld.so.cache 之后当船,接著就 open /apps/lib/curl/lib/libcurl.so.4题画。那么我們推測(cè)是從 /etc/ld.so.cache 里面讀到相關(guān)信息的:

execve("/usr/bin/curl", ["curl", "-V"], [/* 24 vars */]) = 0
brk(0)                                  = 0x1164000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5676b08000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=41067, ...}) = 0
mmap(NULL, 41067, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5676afd000
close(3)                                = 0
open("/apps/lib/curl/lib/libcurl.so.4", O_RDONLY|O_CLOEXEC) = 3

/etc/ld.so.cache 是一個(gè)二進(jìn)制文件,用 strings 命令可以看到 /apps/lib/curl/lib/libcurl.so.4 的確在 /usr/lib64/libcurl.so 前面:

strings /etc/ld.so.cache | grep "/libcurl.so$"

/apps/lib/curl/lib/libcurl.so
/lib64/libcurl.so

ld.so.cache 的內(nèi)容是使用 ldconfig 命令更新的德频,更新的配置信息來(lái)自 /etc/ld.so.conf:

cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

grep 搜索下 curl

grep -ir curl /etc/ld.so.conf.d/

/etc/ld.so.conf.d/user.conf:/apps/lib/curl/lib

這里配置了自己編譯的 curl 目錄苍息!找出原因了,那么解決方法就出來(lái)了壹置。

  • 1竞思、直接在 /etc/ld.so.conf.d/user.conf 刪除 libcurl 配置,然后執(zhí)行 ldconfig 更新 ld.so.cache 信息钞护,需要使用的時(shí)候盖喷,使用 export LD_LIBRARY_PATH=/apps/lib/curl/lib:$LD_LIBRARY_PATH 單獨(dú)聲明
  • 2、如果不需要 /apps/lib/curl难咕,直接移除 /apps/lib/curl传蹈,例如:mv /apps/lib/curl /apps/lib/curl.bak
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市步藕,隨后出現(xiàn)的幾起案子惦界,更是在濱河造成了極大的恐慌,老刑警劉巖咙冗,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沾歪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡雾消,警方通過(guò)查閱死者的電腦和手機(jī)灾搏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)立润,“玉大人狂窑,你說(shuō)我怎么就攤上這事∩H” “怎么了泉哈?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)破讨。 經(jīng)常有香客問(wèn)我丛晦,道長(zhǎng),這世上最難降的妖魔是什么提陶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任烫沙,我火速辦了婚禮,結(jié)果婚禮上隙笆,老公的妹妹穿的比我還像新娘锌蓄。我一直安慰自己升筏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布瘸爽。 她就那樣靜靜地躺著仰冠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝶糯。 梳的紋絲不亂的頭發(fā)上洋只,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音昼捍,去河邊找鬼识虚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妒茬,可吹牛的內(nèi)容都是我干的担锤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乍钻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肛循!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起银择,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤多糠,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后浩考,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體夹孔,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年析孽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搭伤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袜瞬,死狀恐怖怜俐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邓尤,我是刑警寧澤拍鲤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站裁赠,受9級(jí)特大地震影響殿漠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佩捞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕾哟。 院中可真熱鬧一忱,春花似錦莲蜘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至芬迄,卻和暖如春问顷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背禀梳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工杜窄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人算途。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓塞耕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親嘴瓤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扫外,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348