Linux Установка библиотеки (ICU) Вопрос - PullRequest
1 голос
/ 13 сентября 2010

Я относительный новичок в установке библиотек.Моя система в настоящее время имеет более старую версию библиотеки ICU (3.8), и я хочу перейти на последнюю версию (4.4).

Следуя инструкциям в readme.html ICU, все идет хорошо(echo $? производит все 0 для каждого шага).И я вижу, что библиотека была установлена ​​в / usr / local / lib.Однако текущая версия библиотеки установлена ​​в /usr/lib.

Мои вопросы.

1) Есть ли "организационная" или какая-то другая существенная разница между этими двумя местоположениями?

2) Как я могу изменить путь установки новой библиотеки на / usr / lib?

3) Находится ли библиотека в неправильном месте, по этой причине, когда я запускаю даже примеры вв каталоге ICU появляется сообщение об ошибке «При загрузке общих библиотек: libicui18n.so.44»?

Спасибо всем.

Ответы [ 2 ]

4 голосов
/ 13 сентября 2010

1) Материал непосредственно в /usr принадлежит вашему дистрибутиву и не должен изменяться, кроме как через его менеджер пакетов. Материал в /usr/local относится к локальной установке и предназначен для управления по вашему усмотрению. Таким образом, правильно поместить локальную установку более новой библиотеки libICU в /usr/local/lib.

2) Вы можете сделать это, изменив некоторые настройки при сборке ICU - я не могу дать вам конкретного совета, потому что я не знаю, какой сборочный жгут использует ICU. Однако вы не должны этого делать, потому что это перезапишет файлы дистрибутива, что может привести к произвольно ужасной поломке.

3) Вроде. Проблема не в том, что библиотека была установлена ​​не в том месте, а в том, что /usr/local/lib не находится в пути поиска по умолчанию. Вы можете исправить это двумя способами:

  • временно для себя с помощью этой команды оболочки:

    export LD_LIBRARY_PATH=/usr/local/lib
    
  • навсегда для всех пользователей, добавив /usr/local/lib в список в /etc/ld.so.conf и затем запустив ldconfig от имени пользователя root.

0 голосов
/ 13 сентября 2010
  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.В этом случае добавьте --libdir=/usr/local/lib64 к командной строке ./configure при создании ICU.

...