Парабола (подобная дуге) — обновление ICU привело к тому, что некоторые программы требуют две разные версии библиотеки ICU. Обе не запускаются. Невозможно воспроизвести

Парабола (подобная дуге) — обновление ICU привело к тому, что некоторые программы требуют две разные версии библиотеки ICU. Обе не запускаются. Невозможно воспроизвести

я бегуПарабола(производная от Arch Linux, которая заносит в черный список несвободное ПО и добавляет много другого ПО). Недавно пакет ICU обновился с версии 59 до версии 60 (пакет ICU напрямую из репозиториев Arch, а не из Parabola). В результате многие пакеты из собственных репозиториев Parabola пришлось пересобрать для новой версии ICU, включая ring-client-gnome и california.

Я подтвердил, что на новой виртуальной машине и "gnome-ring", и "california" работают без проблем. Другие пользователи на IRC сообщают о том же.

Однако на моей личной машине не запускаются ни "gnome-ring", ни "california". Мне не удалось воспроизвести эту проблему, кроме как на старой виртуальной машине, которая, к сожалению, была повреждена.

Странно, что несмотря на то, что ring-client-gnome собран для ICU v60, мой, похоже, хочет v59, а также v60. Например, если вы удалите ICU, gnome-ring выведет, что не может найти "libicui18n.so.60", как и ожидалось. Но если у вас установлен ICU, он выведет, что не может найти "libicui18n.so.59". Это не имеет никакого смысла, так как невозможно установить две разные версии ICU без конфликтов, поэтому может показаться, что с моей установкой что-то не так.

Интересно, что независимо от того, установлен ли у вас ICU или нет, «california» всегда будет выдавать сообщение о том, что не может найти «libicui18n.so.59», несмотря на то, что он был создан для ICU v60.

С установленным последним пакетом ICU (60.1-1):

[user@hostname ~]$ gnome-ring
gnome-ring: error while loading shared libraries: libicui18n.so.59: cannot open shared object file: No such file or directory

[user@hostname ~]$ california
california: error while loading shared libraries: libicui18n.so.59: cannot open shared object file: No such file or directory

Без установленного пакета интенсивной терапии (калифорнийскийнетопечатка):

[user@hostname ~]$ gnome-ring
gnome-ring: error while loading shared libraries: libicui18n.so.60: cannot open shared object file: No such file or directory

[user@hostname ~]$ california
california: error while loading shared libraries: libicui18n.so.59: cannot open shared object file: No such file or directory

Еще несколько полезных выводов:

[user@hostname ~]$ ldd /usr/lib/libring.so /usr/lib/libring.so.0 /usr/lib/libring.so.0.0.0 /usr/lib/ring/dring /usr/bin/gnome-ring /usr/bin/ring.cx | grep icu

    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x0000604eec817000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x0000604ee9dca000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x000069782c24c000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x00006978297ff000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x00006ea1e4d8a000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x00006ea1e233d000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x0000686de13da000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x0000686dde98d000)
    libicui18n.so.60 => /usr/lib/libicui18n.so.60 (0x0000603da97c4000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x0000603da940b000)
    libicui18n.so.59 => not found
    libicuuc.so.59 => not found
    libharfbuzz-icu.so.0 => /usr/lib/libharfbuzz-icu.so.0 (0x0000603da49ee000)
    libicuuc.so.59 => not found
    libicui18n.so.59 => not found
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x0000603d9f05a000)
    libicuuc.so.59 => not found
    libicui18n.so.59 => not found
    libicuuc.so.59 => not found

Версия для отделения интенсивной терапии:

[user@hostname ~]$ sudo pacman -Q icu
icu 60.1-1

Содержимое /usr/lib/icu:

[user@hostname icu]$ ls -l
total 12
drwxr-xr-x 1 root root 46 Nov 22 14:16 60.1
lrwxrwxrwx 1 root root  4 Nov 12 09:33 current -> 60.1
lrwxrwxrwx 1 root root 20 Nov 12 09:33 Makefile.inc -> current/Makefile.inc
lrwxrwxrwx 1 root root 19 Nov 12 09:33 pkgdata.inc -> current/pkgdata.inc

Содержимое /lib/libicu

[alex@LibrebootT400 lib]$ ls -la libicu*
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicudata.so -> libicudata.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicudata.so.60 -> libicudata.so.60.1
-rwxr-xr-x 1 root root 26825368 Nov 12 09:33 libicudata.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicui18n.so -> libicui18n.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicui18n.so.60 -> libicui18n.so.60.1
-rwxr-xr-x 1 root root  2762816 Nov 12 09:33 libicui18n.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicuio.so -> libicuio.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicuio.so.60 -> libicuio.so.60.1
-rwxr-xr-x 1 root root    55056 Nov 12 09:33 libicuio.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicutest.so -> libicutest.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicutest.so.60 -> libicutest.so.60.1
-rwxr-xr-x 1 root root    64616 Nov 12 09:33 libicutest.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicutu.so -> libicutu.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicutu.so.60 -> libicutu.so.60.1
-rwxr-xr-x 1 root root   203288 Nov 12 09:33 libicutu.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicuuc.so -> libicuuc.so.60.1
lrwxrwxrwx 2 root root       16 Nov 12 09:33 libicuuc.so.59 -> libicuuc.so.60.1
lrwxrwxrwx 2 root root       16 Nov 12 09:33 libicuuc.so.60 -> libicuuc.so.60.1
-rwxr-xr-x 1 root root  1799952 Nov 12 09:33 libicuuc.so.60.1

решение1

У Parabola есть специальный репозиторий, который называется "непризма", который содержит ряд защищенных пакетов и в целом повышает конфиденциальность. Я забыл, что включил его для тестирования некоторое время назад.

Отключение этого репозитория исправило как gnome-ring, так и california, что говорит о том, что один изнепризмаpackages сломан. Удалось сузить его до сломанной зависимости, которая предполагает, что evolution-data-server является виновником. Конечно, естьnonprism/evolution-data-serverкоторый отстает от обычных пакетов на две версии.

nonprism/evolution-data-serverсейчас в очереди на перестройку. Если это решит проблему, я отмечу этот вопрос как решенный.

решение2

Мне это помогло:

sudo ln /usr/lib/libicuuc.so.60 /usr/lib/libicuuc.so.59

(Предполагается, что ваша система работает на ICU v60. Если у вас v59, вы, вероятно, можете создать символическую ссылку 59 на 60.)

Связанный контент