Рішення помилки «Спільна бібліотека об’єктів не знайдена» на екрані Putty
Однією з поширених помилок під час запуску PVP-серверів Metin2 через Putty (SSH) є «Спільний об’єкт «lib...» не знайдено, вимагає «гра»» Це попередження. Ця помилка виникає, коли основні виконувані файли гри (бінарний файл гри та db) не можуть знайти 32-розрядні бібліотеки сумісності або спеціальні бібліотеки вихідного коду, які йому потрібні в операційній системі FreeBSD, повністю перешкоджаючи запуску сервера. Ви можете виконати наведені нижче дії, щоб вирішити проблему.
Спосіб 1: Ручне завантаження відсутньої бібліотеки на сервер
У повідомленні про помилку зазвичай чітко зазначено назву відсутнього файлу (наприклад:libmd.so.5,libssl.so.10,libstdc++.so.6тощо). Введення цього файлу в систему вручну є найбільш остаточним рішенням:
- Спочатку отримайте файл `.so`, згаданий у повідомленні про помилку, із безпечного джерела в Інтернеті або з іншого запущеного сервера Metin2.
- Підключіться до свого сервера за допомогою Filezilla або WinSCP.
- Встановіть відсутній файл у наступний каталог, залежно від вашої версії FreeBSD та інфраструктури:
/usr/lib32/
*(Якщо ваш файл знаходиться на старішій операційній системі/usr/lib/Ви також можете перевірити каталог).* - Клацніть правою кнопкою миші файл, який ви завантажили, Права доступу до файлів (Chmod) введіть значення 777 Оновити як .
Спосіб 2: Створення символічного посилання
Іноді бібліотека, яку ви шукаєте, насправді існує на вашому сервері, але відрізняється лише номер версії (наприклад,libmd.so.6є але граlibmd.so.5шукає). У цьому випадку ми можемо створити символічне посилання, ввівши систему в оману:
- Підключіться до терміналу Putty та увійдіть до каталогу бібліотеки:
cd /usr/lib32 - Щоб гіперпосилати наявний поточний файл на старе ім’я шуканого файлу, виконайте таку команду по-своєму:
ln -s libmd.so.6 libmd.so.5 - Завдяки цій команді гра
libmd.so.5Система автоматично працює у фоновому режимі, коли викликає файл.libmd.so.6запустить файл.
Спосіб 3: встановлення 32-розрядних пакетів сумісності FreeBSD
Якщо ви встановили його з нуля на своєму сервері, і базові бібліотеки практично відсутні, ви можете масово завантажити 32-розрядні бібліотеки за допомогою офіційного менеджера пакетів FreeBSD. Виконайте такі команди через Putty:
pkg update pkg install compat9x-i386 pkg install compat10x-i386 pkg install compat11x-i386
*(Примітка: вам слід вибрати пакет compat, який підходить для версії FreeBSD вашого сервера. Наприклад, якщо ви використовуєте FreeBSD 13, вам слід встановити пакети `compat13x`).*
Спосіб 4: Статичне зв’язування під час фази компіляції (складання) вихідного коду
Якщо у вас є вихідний код гри, ви можете вставити бібліотеки безпосередньо у файл гри на етапі компіляції незалежно від зовнішнього (статичне посилання). Тому не має значення, яка бібліотека знаходиться на сервері:
- у вихідній папці гри
MakefileВідкрийте файл. - Рядки, що містять параметри компіляції (прапорці)
-staticПерекомпілюйте джерело, додавши параметр (отримайте збірку).
Ця стаття спеціально підготовлена для PvPServer.