Я изучал программу в соответствии с информацией в этого вопроса . Сейчас он установлен, но я не могу понять, как его запустить. Друг, использующий ту же версию Ubuntu, без проблем запустил ее после такой же установки.
Это то, что я сделал:
$ ./Psychonauts
./Psychonauts: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Итак, я пошел дальше и:
$ sudo apt-get install libstdc++.so.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'
Следует отметить, что я начал использовать Linux только несколько дней назад.
Хорошо, мне удалось установить обновление apt-file и apt-file.
Однако тогда мы попали в другую загадку.
usagiyojimbo@Usagi:~$ sudo apt-file find libstdc++.so.6
[sudo] password for usagiyojimbo:
E: The cache is empty. You need to run 'apt-file update' first.
Я сделал это, когда я сказал:
File is up-to-date.
Ignoring source without Contents File:
a link they won't let me post
Или
File is up-to-date.
Downloading Index a link
No Index available.
Downloading complete file a link
Я все еще получаю ту же ошибку, когда пытаюсь запустить Psychonauts.
Вы получаете сообщение об ошибке:
E: Unable to locate package libstdc++.so.6 E: Couldn't find any package by regex 'libstdc++.so.6'
, потому что вы пытались установить файл libstdc++.so.6
, который вы не можете установить, потому что он находится в пакете debian.
Вы можете использовать apt-file
для поиска пакета, содержащего этот файл. Чтобы установить его, введите:
sudo apt-get install apt-file
Затем необходимо обновить индекс.
sudo apt-file update
После этого вы можете искать пакет, содержащий файл libstdc++.so.6
:
sudo apt-file find libstdc++.so.6
Затем вы найдете много пакетов, которые содержат искомый файл. В вашем случае правильный пакет - libstdc++6
:
libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
. Затем вы можете установить необходимый пакет:
sudo apt-get install libstdc++6
Я думаю, что Psychonauts - это 32-битное приложение. Вам нужно будет установить:
apt-get install lib32stdc++6
Вы почти у цели, просто использовали на несколько персонажей больше, чем нужно:
sudo apt-get install libstdc++6
... должны справиться с задачей.
Я поделюсь с вами тем, как это сработало для меня. Прежде всего вы должны найти, если какая-либо другая копия этого файла уже находится на вашем компьютере:
$ locate libstdc++.so.6
вывод:
/snap/core/6405/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6405/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6405/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/snap/core/6531/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6531/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6531/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
/snap/core/6673/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21-gdb.py
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25-gdb.py
Как вы можете видеть, есть много /snap/core/...
версии этого файла. (если не этот метод не работает для вас)
Вы должны сделать резервную копию из существующего файла:
$ sudo mv /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.backup
Затем вы можете заменить последнюю версию Snap в поврежденный файл :
sudo cp /snap/core/6673/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Попробуйте снова запустить нужную команду.
Я смог исправить это с помощью моего друга.
Поскольку бинарный файл был 32-битным, мы могли исправить это с помощью следующей команды:
sudo apt-get install libstdc++5:i386