对于我尝试运行的每一个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
并不那么容易。
6条答案
按热度按时间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的任何内容。
如果你发现任何引用libz的东西,尝试用
LD_LIBRARY_PATH=/usr/lib
运行它,以确保它仍然工作。假设没有任何中断,删除本地libz文件(通过将它们移动到备份位置,以便在必要时可以撤消此操作)yx2lnoni2#
我的服务器上有DirectAdmin,这个this guide解决了我的问题。
(从第页复制)
如果您看到错误
这与安装的libz版本有关。当前版本的原因与libxml2需要的libz版本有关。两者的较新版本将解决此问题,但由于此更新报告了许多问题,我们恢复到libz和libxml2的较旧版本。请注意,此警告不会造成任何伤害,因此可以忽略。
如果您仍希望将libz和libxml2更新到其较新版本以避免出现此消息,请键入以下内容:
kcwpcxri3#
这个方法适用于我的情况,请添加以下行your .bash_profile:
LD_LIBRARY_PATH=/lib64:$LD_LIBRARY_PATH
然后运行
. ~/.bash_profile
nhhxz33t4#
使用git lib路径导出
LD_LIBRARY_PATH
以解决错误:a7qyws3x5#
我遇到这个警告是因为一个相关但稍有不同的原因。
如果您编译自己的zlib并在构建过程中覆盖LDSHARED,但是您没有在链接器中包含--version-script参数,那么您的新libz.so.1将没有符号版本......然后几乎所有依赖于zlib的内容都将从动态链接器中引发“no version information available”警告。
修复方法是不覆盖LDSHARED,或确保它包含适当的标志。
brgchamk6#
看起来您需要更新生成先决条件。