摆脱“git:/usr/本地文件夹/libz.so.1:没有可用的版本信息(git需要)”

093gszye  于 2023-02-17  发布在  Git
关注(0)|答案(6)|浏览(176)

对于我尝试运行的每一个git命令,我都会收到这样的消息。

stewie:~# git --version
git: /usr/local/lib/libz.so.1: no version information available (required by git)
git version 1.7.11.4

我怎么才能摆脱这个?

编辑1:

正在尝试更新zlib1g

stewie:/tmp# apt-get install zlib1g
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlib1g is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

编辑2:

我正在使用Debian Lenny(5),所以,不幸的是,使用apt-get并不那么容易。

bjp0bcyl

bjp0bcyl1#

/usr/local用于安装由计算机管理员在本地编译的程序。简单的程序只需进入/usr/local/bin,并通过将/usr/local/bin放入PATH环境变量中来运行。这允许管理员向用户提供对其他命令的访问权限。没有什么可以阻止root用户将新内容安装到/usr/bin中,但约定是/usr/bin由OS分发商的打包工具管理,把本地的东西分开会让事情不那么混乱。
有时本地程序需要一个库,而该库不是由操作系统发行商提供的,并且该库进入/usr/local/lib,一切正常。
当出现版本冲突时--操作系统提供libz.soX版本的www.example.com,但是本地程序需要libz.so版本X+1,或者需要libz.so使用特殊选项编译--事情就变得复杂了。
每个程序都在寻找基于/etc/ld.so.conf的库,如果/usr/lib在那里被赋予优先级,/usr/local程序将找不到他们需要的更新的库。因此/usr/local/lib通常被赋予优先级。旧程序找到更新的库通常不是问题,因为这些库是向后兼容的。
几年后,经过几次操作系统升级,/usr/lib中的库现在是版本X+2,/usr/local/lib中的库仍然是版本X+1,现在来自/usr/bin的程序正在加载旧的/usr/local/lib版本,和行为不端。这可能可以通过删除旧库来修复。需要版本X+1的/usr/local/bin程序将在/usr/lib中找到版本X+2并正常工作。但前提是需要更新的版本是首先在本地安装版本X+1的原因。
要在执行删除操作之前探查潜在的问题,请在/usr/local下查找使用libz的任何内容。

ldd /usr/local/bin/* /usr/local/sbin/* | less +/libz

如果你发现任何引用libz的东西,尝试用LD_LIBRARY_PATH=/usr/lib运行它,以确保它仍然工作。假设没有任何中断,删除本地libz文件(通过将它们移动到备份位置,以便在必要时可以撤消此操作)

mkdir /root/local-libz-backup
mv /usr/local/lib/libz* /root/local-libz-backup
ldconfig
yx2lnoni

yx2lnoni2#

我的服务器上有DirectAdmin,这个this guide解决了我的问题。
(从第页复制)
如果您看到错误

/usr/local/lib/libz.so.1: no version information available (required by python)

这与安装的libz版本有关。当前版本的原因与libxml2需要的libz版本有关。两者的较新版本将解决此问题,但由于此更新报告了许多问题,我们恢复到libz和libxml2的较旧版本。请注意,此警告不会造成任何伤害,因此可以忽略。
如果您仍希望将libz和libxml2更新到其较新版本以避免出现此消息,请键入以下内容:

cd /usr/local/directadmin/custombuild
./build update
perl -pi -e 's/zlib:1.2.3:.*/zlib:1.2.5:/' versions.txt
perl -pi -e 's/libxml2:2.7.6:.*/libxml2:2.7.8:/' versions.txt
./build update_data
./build zlib
./build libxml2
./build php n
kcwpcxri

kcwpcxri3#

这个方法适用于我的情况,请添加以下行your .bash_profile:
LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH
然后运行. ~/.bash_profile

nhhxz33t

nhhxz33t4#

使用git lib路径导出LD_LIBRARY_PATH以解决错误:

libz.so.1: no version information available
a7qyws3x

a7qyws3x5#

我遇到这个警告是因为一个相关但稍有不同的原因。
如果您编译自己的zlib并在构建过程中覆盖LDSHARED,但是您没有在链接器中包含--version-script参数,那么您的新libz.so.1将没有符号版本......然后几乎所有依赖于zlib的内容都将从动态链接器中引发“no version information available”警告。
修复方法是不覆盖LDSHARED,或确保它包含适当的标志。

brgchamk

brgchamk6#

看起来您需要更新生成先决条件。

相关问题