Сообщение об ошибке libicui18n.so.70 после обновления ноутбука до версии 24.04.

Вопрос или проблема

Я недавно обновил свой ноутбук до версии 24.04 и не могу запустить программный пакет. Появляется следующая ошибка:

ошибка при загрузке общих библиотек: libicui18n.so.70: не удается открыть файл разделяемой библиотеки: Нет такого файла или каталога

Вам нужна libicu70. Версия libicu в Ubuntu 24 — libicu74.
Просто скачайте libicu70.deb вручную и установите его с помощью dpkg.

Вы можете найти ссылку на Launchpad Ubuntu icu package 70.1-2.

Я предполагаю, что вы используете машину amd64.

wget https://launchpad.net/ubuntu/+source/icu/70.1-2/+build/23145450/+files/libicu70_70.1-2_amd64.deb
sudo dpkg -i libicu70_70.1-2_amd64.deb

Вам нужно посетить страницу выпуска ICU (International Components for Unicode) и найти нужную вам версию.

Предположим, что вам нужна версия 70.

https://github.com/unicode-org/icu/releases/tag/release-70-rc

Выберите вашу платформу.

Ubuntu

Я буду использовать Ubuntu (icu4c-70rc-Ubuntu-20.04-x64.tgz) в качестве примера:

wget https://github.com/unicode-org/icu/releases/download/release-70-rc/icu4c-70rc-Ubuntu-20.04-x64.tgz
tar -xvf icu4c-70rc-Ubuntu-20.04-x64.tgz
# После завершения вы получите каталог `icu`
ls -al ./icu/usr/local/lib # Этот каталог содержит много файлов `.so`, таких как:
# icu/usr/local/lib/libicui18n.so -> libicui18n.so.70

# Скопируйте эти файлы в системный каталог (использование 'mv' в Docker может вызвать проблемы, поэтому используйте 'cp -r', а затем удалите)
cp -r ./icu/usr/local/lib/* /usr/lib/x86_64-linux-gnu/
rm -rf ./icu/
rm -rf icu4c-70rc-Ubuntu-20.04-x64.tgz

Ответ или решение

Обновление операционной системы до новой версии, такой как Ubuntu 24.04, может стать причиной возникновения различных проблем с совместимостью программного обеспечения, особенно если оно зависит от определённых версий библиотек. Ошибка "error while loading shared libraries: libicui18n.so.70: cannot open shared object file: No such file or directory" указывает на отсутствие нужной библиотечной зависимости, которая ранее использовалась в вашей системе.

Теория

Ошибка, с которой вы столкнулись, связана с библиотекой ICU (International Components for Unicode), используемой для поддержки унифицированной обработки текста и символов в различных приложениях. В частности, указывается на отсутствие библиотеки libicui18n.so.70, которая ранее могла быть частью вашей системы, но была обновлена или удалена в процессе перехода на новую версию ОС.

Каждая версия Ubuntu может использовать разные версии библиотек ICU. В случае Ubuntu 24.04, похоже, используется libicu74, в то время как ваше программное обеспечение продолжает зависеть от libicu70.

Пример

Чтобы решить вашу проблему, необходимо установить недостающую библиотеку libicu70. Это можно сделать несколькими способами. Первый подход — это установить предыдущую версию библиотеки из пакета .deb. Например, можно воспользоваться командой:

wget https://launchpad.net/ubuntu/+source/icu/70.1-2/+build/23145450/+files/libicu70_70.1-2_amd64.deb
sudo dpkg -i libicu70_70.1-2_amd64.deb

Этот подход предполагает, что вы используете архитектуру amd64. Если ваша архитектура отличается, вам потребуется найти соответствующий пакет на Launchpad.

Альтернативный подход предполагает сборку и установку необходимой версии ICU вручную из исходного кода. Для этого можно воспользоваться репозиторием ICU на GitHub`:

wget https://github.com/unicode-org/icu/releases/download/release-70-rc/icu4c-70rc-Ubuntu-20.04-x64.tgz
tar -xvf icu4c-70rc-Ubuntu-20.04-x64.tgz
cp -r ./icu/usr/local/lib/* /usr/lib/x86_64-linux-gnu/
rm -rf ./icu/
rm -rf icu4c-70rc-Ubuntu-20.04-x64.tgz

Применение

После выполнения одного из предложенных вариантов, ваша система должна иметь доступ к библиотеке libicui18n.so.70, что, в свою очередь, позволит вашему программному обеспечению корректно запускаться и функционировать.

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

Также не забывайте о возможности использования контейнеризации (например, Docker), что позволяет изолировать окружение вашего приложения и его зависимости, минимизируя риски конфликтов с системными библиотеками. Это особенно актуально для приложений, которые не обновляются разработчиком и требуют специфичных версий зависимостей.

Оцените материал
Добавить комментарий

Капча загружается...