1

我是安装库的相对菜鸟。我的系统目前有旧版本的ICU库 (3.8),我想使用最新版本 (4.4)。

按照 ICU readme.html 中的步骤,一切正常(echo $? 为每个步骤生成全 0)。我看到该库已安装到 /usr/local/lib。但是,当前版本的库安装在 /usr/lib 中。

我的问题。

1)这两个位置之间是否存在“组织”或其他一些显着差异?

2) 如何将新库的安装路径更改为 /usr/lib?

3) 库位于错误的位置是否是我什至在 ICU 目录中运行示例时出现“加载共享库时出错:libicui18n.so.44”的原因?

谢谢大家。

4

2 回答 2

4

1) 直接放入的东西/usr属于您的发行版,除非通过其包管理器,否则不应修改。里面的东西/usr/local属于本地安装,你可以随意管理。因此,在本地安装较新的 libICU 是正确的/usr/local/lib

2)您可以通过在构建 ICU 时调整一些设置来做到这一点 - 我无法给您具体的建议,因为我不知道 ICU 使用什么构建工具。但是,您不应该这样做,因为这会覆盖发行版的文件,这可能会导致任意可怕的破坏。

3)排序。问题不在于库安装在错误的位置,而是/usr/local/lib不在默认搜索路径中。您可以通过两种方式解决此问题:

  • 暂时为自己使用这个 shell 命令:

    export LD_LIBRARY_PATH=/usr/local/lib
    
  • /usr/local/lib通过添加到列表中/etc/ld.so.conf然后ldconfig以 root 身份运行,永久为所有用户。

于 2010-09-13T17:15:19.413 回答
0
  1. /usr/local 是本地安装软件的目录层次结构。/usr/bin、/usr/lib/ 等用于系统管理的文件(即由您的发行工具管理的文件,如 rpm yum dselect 等)
  2. 您通常不应该将东西安装到 /usr/lib
  3. 您可能需要运行 ldconfig(以 root 身份)来更新将名称(如 libicui18n.so.44)映射到路径名(如 /usr/local/lib/libicui18n.so.44)的库缓存

另一个问题是,如果您有 x86_64 系统,则 64 位库的正确库路径是 /usr/local/lib64 而不是 /usr/local/lib。在这种情况下,在构建 ICU 时添加--libdir=/usr/local/lib64到命令行。./configure

于 2010-09-13T17:18:32.003 回答