Score:1

How do I fix missing dependencies when installing FCEUX?

us flag

I am attempting to install FCEUX from a .deb package that worked on Ubuntu 20.04 but does not install on 22.04.1 LTS.

I see the following errors:

Depends: libx264-155 but it is not installable
Depends: libx265-179 but it is not installable
E: Unable to correct problems, you have held broken packages.

Does this mean that 22.04 cannot use this package since it has these dependencies? Is there a way to install those older dependencies on 22.04?

The source is available but there aren't great instructions on building.

guiverc avatar
cn flag
It means that package was *built* for use on *focal* or 20.04 where I see `libx264-155 | 2:0.155.2917+git0a84d98-2 | focal/universe | amd64, arm64, armhf, i386, ppc64el, riscv64, s390x` available... Use a package *built* for *jammy* if that's what you're using, or if open source code, build it yourself.
us flag
What are you trying to install?
raddevus avatar
us flag
attempting to install https://fceux.com/web/home.html The source is available but there aren't great instructions on building.
Score:3
pl flag

fceux is actually in the Ubuntu repository. So you have two options, install the pre-built one or build from source.

Install from Ubuntu

sudo apt install fceux

Build from source

You can build this from source pretty easily. I just tested these instructions on Ubuntu 22.04 and 23.04, and it works.. see:

FCEUX running Super Mario Bros

Here's what you do:

Install dependencies

sudo apt update
sudo apt install git cmake build-essential qtbase5-dev pkg-config zlib1g-dev libminizip-dev libsdl2-dev liblua5.1-dev qttools5-dev libx264-dev libx265-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev cppcheck 

Get the source

git clone https://github.com/TASEmulators/fceux
cd fceux

Make the docs (optional)

./scripts/unix_make_docs.sh

Build fceux

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
make

Test it

./src/fceux

It should launch as per my image above. If you're happy, you can "install" it.

Install fceux

sudo make install

That'll put it all in /usr/local including the binary and all the other bits and bobs. It won't get updated of course, but if they update the source, you can always do the above again. Hope that helps.

raddevus avatar
us flag
Wow! This is fantastic. Thanks for the great answer.
raddevus avatar
us flag
Also, I'm curious, how did you discover those instructions? How did you know you needed to create that build directory and install those dependencies etc.? Did I miss some documentation somewhere? Thanks
pl flag
I span up a clean virtual machine, grabbed the source, and started trying to build it from scratch. I guessed at a couple of dependencies that I knew for sure would be needed like cmake, build-essential and libsdl, but the rest I mostly just figured out by trial and error. Didn't take too long.
raddevus avatar
us flag
That's really great and I appreciate you working out the details and writing them up so nicely. This would be a great addition to the readme at the github. It built for me and I am running it.
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.