Closed cheekylions closed 2 years ago
It's possible there's some system library that bsnes needs that isn't available on your Mint installation because no other program has needed it yet.
If you run this command in the terminal, it should install all the things bsnes needs:
sudo apt-get install libgtk2.0-0 libpulse0 libcairo2 libsdl2-2.0-0 libxv1 libao4 libopenal1 libudev1
If you're familiar with the terminal, you can use the ldd command to discover what libraries an application like bsnes uses:
$ ldd ~/.local/bin/bsnes
linux-vdso.so.1 (0x00007fff12531000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f6fe37ba000)
libgtk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 (0x00007f6fe2f8c000)
libgdk-3.so.0 => /usr/lib/x86_64-linux-gnu/libgdk-3.so.0 (0x00007f6fe2e87000)
libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f6fe2e35000)
libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f6fe2d10000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f6fe2ce2000)
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f6fe2c86000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f6fe2b52000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f6fe2acb000)
libXv.so.1 => /usr/lib/x86_64-linux-gnu/libXv.so.1 (0x00007f6fe28c6000)
libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007f6fe27bf000)
libao.so.4 => /usr/lib/x86_64-linux-gnu/libao.so.4 (0x00007f6fe27b4000)
libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f6fe275d000)
libpulse-simple.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007f6fe2756000)
libSDL2-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007f6fe25c7000)
libudev.so.1 => /usr/lib/x86_64-linux-gnu/libudev.so.1 (0x00007f6fe259e000)
The output on your machine will probably look different (much longer, for example), but it means the application needs the library on the left of the =>
, and it's going to satisfy that need with the file named on the right. For example, my copy of bsnes needs libX11.so.6
, and it's going to satisfy that need with the file /usr/lib/x86_64-linux-gnu/libX11.so.6
.
If any line says "not found" instead of a file, that's a library that's missing. You should be able to figure out what library to install with apt-file
. For example, if libao.so.4
were missing, you could run:
$ apt-file search libao.so.4
libao4: /usr/lib/x86_64-linux-gnu/libao.so.4
libao4: /usr/lib/x86_64-linux-gnu/libao.so.4.1.1
...to discover that libao4
is the package that provides those libraries, so sudo apt install libao4
should fix that problem.
Exception: linux-vdso.so.1. It's kernel magic; it doesn't exist on your filesystem, nor is it supposed to. Ignore it in ldd output, only check for other missing =>s. (If you want to know more, google it.)
I appreciate your responses! I have run the apt-get command you recommended and it said they all were at the newest version already and didn't install anything new.
I did the "ldd" command as well (I didn't know that existed! Definitely going in the old brainasium) and none of the files listed stated that "not found" beside them. It seems they were all located just fine.
Besides the linux-vdso.so.1, there was one other that similarly didn't have the "=>" indicator.. "/lib64/ld-linux-x86-64.so.2" from the libc6 library, but that's already listed as being up-to-date.
Hm, if you run bsnes from the terminal (rather than by double-clicking on it in the file-manager), do you get any error message?
I just tried "./bsnes" in terminal and it boots. Still not from Nemo though.
Well, that's weird. I'm afraid I don't know what to suggest.
I guess modern Linux distros don't like the idea of distributing apps as a simple archive anymore.
Apparently Linux Mint includes support for the Flatpak distribution format, so you might be able to install the latest stable build of bsnes from FlatHub: https://flathub.org/apps/details/dev.bsnes.bsnes
That works, too!
Alternatively, since I have several scripts that pair with different versions of bsnes, I discovered I could just create a bash file in my bsnes folders called run-bsnes with the following code:
#!/bin/bash
./bsnes
Which gives me a "display file or run?" dialog, but ultimately does what it's supposed to.
Still frustrated that it should just work, but apparently this has been a problem with Nemo/Nautilus for years now with no sign of going away. At some point I'll have to switch to something more advanced.
Thanks for all your help!
Which gives me a "display file or run?" dialog
You can remove that prompt with a .desktop file. Here's an example.
You can remove that prompt with a .desktop file. Here's an example.
Hmm. I tried a few variations of that code on my system for bsnes but I can't get it working.
Ok, I figured it out. I was trying to use relative paths which .desktop files don't like.
Sorry if this is the wrong place to put this. I am running Linux Mint and trying to get bsnes Ubuntu running, but the 'executable' doesn't open, even when I tell Linux to allow it to execute as a program. It says it can't find the program to open it. I've been able to get the Windows version working alright with WINE, but it would be nice to be able to run the Linux version ya'll have spent good time getting together. Thanks!