Предполагаем, что в качестве операционной системы установлен дистрибутив Linux CentOS (Fedora/Ubuntu/Debian).
Тогда вполне возможно, что клиент только с одной версией протокола может работать с сервером Counter-Strike на 64-битной системе (не грузится dproto).
В консоли сервера CS 1.6 набираем meta list, чтобы проверить состояние:
dproto_i386.so badf load dproto_i386.so v - ini - -
Должно быть RUN
в каждой строке, но не FAIL
или BAD
. Попробуем решить эту проблему!
В первую очередь командой ldd надо проверить требуемые библиотеки:
[root]# ldd dproto_i386.so
ldd: warning: you do not have execution permission for `./dproto_i386.so'
linux-gate.so.1 => (0x002e4000)
libdl.so.2 => /lib/libdl.so.2 (0x002e8000)
libm.so.6 => /lib/libm.so.6 (0x0083c000)
libstdc++.so.6 => not found
libc.so.6 => /lib/libc.so.6 (0x002ed000)
/lib/ld-linux.so.2 (0x00867000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00927000)
Как видим, не достаёт библиотеки libstdc++.so.6 - проблема в том, что нужна 32-битная версия (для обеспечения совместимости).
В такой ситуации при попытке подключения к серверу CS16 будем видеть нижеследующее сообщение об ошибке на стороне клиента:
This server is using a newer protocol (48) than your client (47). You should check for updates to your client.
Проблема легко решается добавлением недостающего пакета:
apt-get install ia32-libs
или
yum -y install ia32-libs
Получается не всегда поставить libstdc++.so.6 таким путем. Но мы готовы копать глубже в случае необходимости!
Если у Вас возникла ошибка:
error while loading shared libraries: libstdc++.so.6: в centos6
тогда смотрим, к чему относится эта библиотека:
yum whatprovides libstdc++.so.6
Допустим, у нас CentOS 6.5, тогда видим ответ:
libstdc++-4.4.6-4.el6.i686 : GNU Standard C++ Library
Устанавливаем, явно указывая нашу архитектуру через точку после имени:
yum -y install libstdc++.i686
Если все равно ругается, возможно, нужна установка 32-битной или 64-битной.
Пробуйте с i386 и x86_64 на конце, в зависимости от архитектуры.
Должно быть:
[root]# ldd dproto_i386.so
ldd: warning: you do not have execution permission for `./dproto_i386.so'
linux-gate.so.1 => (0x002e4000)
libdl.so.2 => /lib/libdl.so.2 (0x002e8000)
libm.so.6 => /lib/libm.so.6 (0x0083c000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00bf8000)
libc.so.6 => /lib/libc.so.6 (0x002ed000)
/lib/ld-linux.so.2 (0x00867000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00927000)
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux