На свежеустановленной Arch Linux Viber запускается, но при авторизации – не может подключиться к сети.
Вообще десктопная версия Вайбера, конечно, убога – но это лучше, чем тыкать кнопочки в телефоне. Да и сам Вайбер, как мессенджер… Решение для домохозяек.
Но по статистке он установлен на 94% Android-телефонах, и по сути стал новым скайпом для обычных пользователей, так что приходится пользоваться – на Телегу не всех хотят переходить.
Решение искал долго, вариантов много, т.к. не сразу понял по какой именно ошибке гуглить, но в конце-концов решение нашлось – и очень простое.
Ошибки выглядят так:
[simterm]
$ viber Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init qt.network.ssl: QSslSocket: cannot resolve sk_new_null qt.network.ssl: QSslSocket: cannot resolve sk_push qt.network.ssl: QSslSocket: cannot resolve sk_free qt.network.ssl: QSslSocket: cannot resolve sk_num qt.network.ssl: QSslSocket: cannot resolve sk_pop_free qt.network.ssl: QSslSocket: cannot resolve sk_value qt.network.ssl: QSslSocket: cannot resolve SSL_library_init qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf qt.network.ssl: QSslSocket: cannot resolve SSLeay qt.network.ssl: QSslSocket: cannot resolve SSLeay_version qt.network.ssl: Incompatible version of OpenSSL qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. QQuickItem: Cannot set activeFocusOnTab to false once item is the active focus item. qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
[/simterm]
Содержание
Решение #1 (не работает)
Первым, что нагуглилось и пробовал сделать – поправить загрузку библиотеки libssl.so
. Костылём, через симлинки, как предлагается тут>>>.
Проверяем файл:
[simterm]
$ ls -l /usr/lib64/libssl.so.1.1 -rwxr-xr-x 1 root root 585328 Nov 20 19:41 /usr/lib64/libssl.so.1.1
[/simterm]
Создаём симлинк:
[simterm]
22:52:01 [setevoy@setevoy-arch-pc ~] $ sudo ln -s /usr/lib64/libssl.so.1.1 /opt/viber/lib/libssl.so
[/simterm]
Запускаем Viber – не работает.
Решение #2 (не работает)
Потом нагуглилось обсуждение тут>>>, в котором говорится про pulseaudio
, который прописан в зависимостях Viber-а, но не установился.
Устанавливаем его:
[simterm]
$ sudo pacman -S pulseaudio
[/simterm]
Перезагружаемся, запускаем Viber – нет, не работает.
Есть ещё пакет pulseaudio-git
– пробуем его:
[simterm]
... ==> Install or build missing dependencies for pulseaudio-git: resolving dependencies... looking for conflicting packages... :: jack2-dbus and jack are in conflict. Remove jack? [y/N] ...
[/simterm]
Что за пакет jack2-dbus
?
Смотрим описание тут>>> – вроде не критичен, если есть жёсткие зависимости – pacman
/yay
сказали бы.
Удаляем сначала сам pulseaudio
:
[simterm]
$ sudo pacman -Rsn pulseaudio checking dependencies... :: firefox optionally requires pulseaudio: Audio support :: phonon-qt5 optionally requires pulseaudio: PulseAudio support :: phonon-qt5-gstreamer optionally requires pulseaudio: PulseAudio support :: polybar optionally requires pulseaudio: pulseaudio module support Packages (3) rtkit-0.11+10+g493a135-1 webrtc-audio-processing-0.3.1-1 pulseaudio-12.2-2 Total Removed Size: 6.75 MiB :: Do you want to remove these packages? [Y/n]
[/simterm]
Запускаем ещё раз установку pulseaudio-git
:
[simterm]
$ yaourt -S pulseaudio-git ... delete :: jack2-dbus and jack are in conflict. Remove jack? [y/N] y ... :: pulseaudio-git and libpulse are in conflict. Remove libpulse? [y/N]
[/simterm]
Соглашаемся, удаляем их, перезагружаемся, запускаем Viber – нет, те же ошибки.
Решение #3 (работает)
А что вообще с библиотеками?
[simterm]
$ ldd /opt/viber/Viber linux-vdso.so.1 (0x00007ffd2b346000) libXss.so.1 => /usr/lib/libXss.so.1 (0x00007f5e3a0ca000) libqrencode.so => /opt/viber/lib/libqrencode.so (0x00007f5e39eb9000) libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f5e39e26000) libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f5e39c14000) libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f5e39ad5000) ...
[/simterm]
Всё хорошо, всё найдено…
И вот тут я уже обратил внимание конкретно на строку qt.network.ssl: Incompatible version of OpenSSL в списке сообщений Viber, по которому нагуглилось обсуждение тут>>>.
Устанавливаем openssl-1.0
:
[simterm]
$ sudo pacman -S openssl-1.0
[/simterm]
Запускаем Viber – и вуаля! Работает!
Только после успешного подключения – почти сразу же вылетел…
[simterm]
... PulseAudioService: pa_context_connect() failed PulseAudioService: pa_context_connect() failed Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting. Aborted (core dumped)
[/simterm]
Восстанавливаем “обычный” pulseaudio
– удаляем pulseaudio-git
:
[simterm]
$ sudo pacman -S pulseaudio resolving dependencies... looking for conflicting packages... :: pulseaudio and pulseaudio-git are in conflict. Remove pulseaudio-git? [y/N] y Packages (3) libpulse-12.2-2 pulseaudio-git-v12.0.269.gdb788229c-1 [removal] pulseaudio-12.2-2 ...
[/simterm]
Запускаем его:
[simterm]
$ pulseaudio -D
[/simterm]
Запускаем Viber:
[simterm]
$ viber Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory... Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory... qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method qml: type="" qml: type=""
[/simterm]
И теперь всё работает.