Подробный гайд: Решение ошибки cannot open shared object file и Error 74 в ALT Linux
Ошибка cannot open shared object file (обычно выглядит как error while loading shared libraries: <имя_библиотеки>: cannot open shared object file: No such file or directory) означает, что системный загрузчик библиотек не может найти необходимый .so файл для запуска программы.
Важное уточнение про «Error 74»:
В стандартной подсистеме Linux (ld.so) нет кода ошибки 74 для проблем с библиотеками. Скорее всего, «74» — это код возврата (exit code) самой запускаемой программы, специфичная ошибка конкретного приложения (например, Wine, Steam, 1С, игрового движка) или ошибка пакетного менеджера. Мы устраним корневую причину (нехватку библиотеки), а ниже разберем, что делать с «74».
Ниже представлен подробный гайд по решению этой проблемы именно в ALT Linux (Сизиф, p10, p11).
Шаг 1. Определяем, какой именно библиотеки не хватает
Внимательно посмотрите на полный текст ошибки. Вам нужно найти имя файла, который не найден.
Пример ошибки:
error while loading shared libraries: libssl.so.1.1: cannot open shared object file...
Нужное имя: libssl.so.1.1
Если вы не видите полный текст, проверьте зависимости исполняемого файла:
ldd /путь/к/вашей/программе | grep "not found"
Эта команда покажет список всех библиотек, которые программа не может найти (справа будет написано => not found).
Шаг 2. Ищем пакет с библиотекой в ALT Linux
В ALT Linux есть несколько способов узнать, в каком пакете содержится нужная библиотека.
Способ А: Через apt-file (рекомендуется)
Если у вас установлен apt-file, выполните:
apt-file search libssl.so.1.1
(Замените libssl.so.1.1 на имя вашей библиотеки).
Команда выдаст список пакетов, в которых есть этот файл.
Способ Б: Через epm (фирменный инструмент ALT Linux)
Если apt-file не установлен, можно использовать epm:
epm search libssl
или поискать на официальном сайте репозиториев: https://packages.altlinux.org
Шаг 3. Устанавливаем недостающий пакет
Как только вы узнали имя пакета (например, libssl1.1), установите его. В ALT Linux можно использовать apt-get или epm:
su -
apt-get update
apt-get install libssl1.1
Или через epm:
su -
epm install libssl1.1
Шаг 4. Обновляем кэш библиотек
После установки новых библиотек обязательно обновите кэш динамического компоновщика:
sudo ldconfig
Проверьте, исчезла ли ошибка:
ldd /путь/к/вашей/программе | grep "not found"
Если команда ничего не вывела — все библиотеки на месте.
Шаг 5. Частая проблема: Конфликт архитектур (32-bit против 64-bit)
Очень часто эта ошибка возникает, если вы пытаетесь запустить 32-битную программу в 64-битной системе (или наоборот).
Проверьте архитектуру программы:
file /путь/к/вашей/программе
- Если написано
ELF 64-bit, вам нужны 64-битные библиотеки (пакеты без приписок или сx86_64). - Если написано
ELF 32-bit, вам нужны 32-битные библиотеки. В ALT Linux они обычно имеют архитектуруi586или лежат в пакетах с припискойlib32.
Как установить 32-битные библиотеки в 64-битный ALT Linux:
Вам нужно подключить репозиторий i586 (если он еще не подключен) и установить пакеты.
su -
apt-repo add i586 # Добавляем 32-битный репозиторий (актуально для Сизифа/p10)
apt-get update
apt-get install libssl1.1:i586 # Пример установки 32-битной версии
(Примечание: в ALT Linux мультиархитектурность работает специфично, иногда проще использовать epm play steam или epm play wine, которые сами подтягивают нужные 32-битные зависимости).
Шаг 6. Если библиотека установлена, но программа её не видит
Иногда библиотека лежит в нестандартной директории (например, /opt/myapp/lib). Системный загрузчик её там не ищет.
Решение 1: Через переменную окружения (временное)
export LD_LIBRARY_PATH=/opt/myapp/lib:$LD_LIBRARY_PATH
./ваша_программа
Решение 2: Через конфигурацию ldconfig (постоянное)
1. Создайте файл конфигурации:
echo "/opt/myapp/lib" | sudo tee /etc/ld.so.conf.d/myapp.conf
2. Обновите кэш:
sudo ldconfig
Шаг 7. Разбираемся с «Error 74»
Так как стандартный ld.so не выдает ошибку 74, вот основные сценарии, где она может встречаться:
1. Если это Wine / Proton / Steam:
Код 74 может означать, что Wine не смог инициализировать префикс или не хватает специфичных 32-битных библиотек (например, lib32-libX11, lib32-libGL). Попробуйте переустановить Wine через epm play wine или epm play steam.
2. Если это 1С или специфичный корпоративный софт:
Ошибка 74 может быть внутренней ошибкой самого приложения, указывающей на то, что модуль загружен, но не может инициализироваться (например, из-за нехватки прав, проблем с лицензионным ключом или блокировки со стороны мандатного контроля доступа / AppArmor / SELinux в ALT Linux). Проверьте /var/log/syslog или /var/log/messages на предмет блокировок.
3. Если это ошибка пакетного менеджера (apt/epm):
Если ошибка 74 возникает при попытке установить библиотеку, это может означать проблему с GPG-ключами репозитория или сетью. Выполните apt-get update и проверьте, нет ли там ошибок.
Важно:
- Узнайте точное имя
.soфайла из текста ошибки. - Найдите пакет через
apt-file search <имя_файла>. - Установите пакет через
apt-get install <имя_пакета>. - Выполните
sudo ldconfig. - Убедитесь, что не путаете 32-битные (
i586) и 64-битные (x86_64) библиотеки.
Если проблема сохранится:
Пожалуйста, напишите мне полный текст ошибки из терминала (включая команду, которую вы запускаете, и строку с "error 74"), и я подскажу точное решение для вашего конкретного случая! Вы так же можете написать от этом в нашу техническую поддержку, чтобы сохранить приватность ваших данных.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.