Я пытаюсь установить это программное обеспечение под названием Skedler. В их документации упоминаются зависимости библиотеки GLIBCXX, но они не удосужились предоставить инструкции по установке.

GLIBCXX libraries

Skedler has dependency on libstdc++ library.
    Following are the GLIBCXX versions the code depends on
    libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
To check the versions on your server. Please run the command
    CentOS 
    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
    Debian/Ubuntu
    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 

    If the version is not available, update the GCC compiler

Выполнение команды grep дает no such file found в Ubuntu 18.04. Я также пробовал sudo apt-get install libstdc++ и несколько других команд, но, похоже, ничего не устанавливает необходимые библиотеки.

2
Jeff Schaller 22 Июл 2018 в 16:29

1 ответ

Предлагаемый путь для проверки не является точным для современных Debian/Ubuntu. Команда, вероятно, должна быть:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

И этот сегмент выглядит как часть вывода команды ldd:

libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Отсутствие текста not found после стрелки в любой из этих трех строк указывает на то, что бинарный файл, проверенный программой установки, успешно нашел все необходимое в библиотеке. Таким образом, похоже, что эта зависимость уже обрабатывается вашей системой.

Кстати, вывод Skedler выглядит немного запутанным относительно названия библиотеки. На самом деле наиболее заметным для пользователя именем должно быть libstdc++.

В Debian 9 в настоящее время доступны две версии libstdc++: текущая версия упакована как libstdc++6, а устаревшая версия, которая раньше была популярна среди различного проприетарного программного обеспечения, упакована как libstdc++5 . Я предполагаю, что в Ubuntu могут быть доступны варианты с похожими именами.

Имя GLIBCXX является префиксом имен версий символов в библиотеке. Обычно это было бы более тесно связано с фактическим именем библиотеки (без префикса «lib»), но в этом случае проблема заключается в знаках «плюс», и поэтому они заменены символами X.

(Старый libstdc++5 использовал другой ABI, несовместимый с текущим, а символы его версии вместо этого использовали префикс GLIBCPP.)

4
telcoM 18 Июл 2018 в 14:27