centos如何在不升級(jí)系統(tǒng)的情況下解決高glibc依賴的問(wèn)題

1、如何在centos7上安裝新版的positron?

你遇到的這個(gè)錯(cuò)誤非常典型,說(shuō)明 Positron 在你的 CentOS 7 上啟動(dòng)內(nèi)部后臺(tái)服務(wù)(kallichore / supervisor)失敗。
這幾乎總是因?yàn)?glibc / libstdc++ / libcrypt / libX11 等系統(tǒng)依賴版本太低 —— CentOS 7 的系統(tǒng)庫(kù)太老,無(wú)法運(yùn)行 Positron 的 Electron + Rust + Kallichore runtime。

  • GLIBC_2.28 not found
  • GLIBCXX_3.4.26 not found
  • libcrypt.so.2: cannot open shared object file
  • libXi.so.6: version not found
  • Segmentation fault (core dumped)

2、解決方案

  • 使用conda新建一個(gè)新版的glibc環(huán)境
# 激活環(huán)境
conda activate positron

# 安裝 glibc 包(如果有)
conda install -c conda-forge glibc

# 或者安裝 gcc 的完整運(yùn)行時(shí)
conda install -c conda-forge gcc_linux-64 gxx_linux-64
  • 使用 patchelf, 以嘗試讓程序同時(shí)使用 Conda 的 libc 和系統(tǒng)的 ld-linux

最關(guān)鍵的步驟是使用 patchelf --set-interpreter 修改程序的動(dòng)態(tài)鏈接器路徑,這樣就能確保程序使用 Conda 環(huán)境中完整且匹配的 glibc 2.30,而不是系統(tǒng)的不兼容版本。

cd /data1/qingjian/.positron-server/bin/b13dd1ca4803bc04a4a9165395b589b8caf4ab58/extensions/positron-supervisor/resources/kallichore/

# 備份原文件(安全第一)
cp kcserver kcserver.backup_final

# 1. 修改動(dòng)態(tài)鏈接器為 Conda 的 ld-linux
patchelf --set-interpreter /data1/qingjian/miniconda3/envs/positron/lib/ld-linux-x86-64.so.2 kcserver

# 2. 設(shè)置 RPATH 指向 Conda 的 lib 目錄
patchelf --set-rpath /data1/qingjian/miniconda3/envs/positron/lib kcserver

# 3. 驗(yàn)證修改結(jié)果
patchelf --print-interpreter kcserver
patchelf --print-rpath kcserver
  • 驗(yàn)證配置是否正確
ldd kcserver

#輸出類似下面的內(nèi)容
linux-vdso.so.1 =>  (0x00007ffda9fb2000)
libm.so.6 => /data1/qingjian/miniconda3/envs/positron/lib/libm.so.6 (0x00007f6e30b11000)
libpthread.so.0 => /data1/qingjian/miniconda3/envs/positron/lib/libpthread.so.0 (0x00007f6e308f5000)
libc.so.6 => /data1/qingjian/miniconda3/envs/positron/lib/libc.so.6 (0x00007f6e30527000)
libdl.so.2 => /data1/qingjian/miniconda3/envs/positron/lib/libdl.so.2 (0x00007f6e30323000)
/data1/qingjian/miniconda3/envs/positron/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f6e31540000)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容