Я запускаю Parabola (производная версия 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

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

[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
ToffeeYogurtPots 27 Ноя 2017 в 02:39

2 ответа

Лучший ответ

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

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

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

0
ToffeeYogurtPots 29 Ноя 2017 в 10:13

Это сработало для меня:

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

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

-1
qscgy 25 Ноя 2017 в 08:19
Это всегда ужасная идея.
 – 
jasonwryan
25 Ноя 2017 в 08:22
Использование версии 60 вместо версии 59 не должно вызывать проблем, но двоичный файл, вероятно, в любом случае не должен быть связан с версией 59.
 – 
Jasen
25 Ноя 2017 в 08:43
Протестировал на виртуальной машине, не работает независимо от того, ужасная это идея или нет.
 – 
ToffeeYogurtPots
25 Ноя 2017 в 14:55