Previously, in Ubuntu 18.10 and prior you could install every dependency in any variety of Ubuntu systems without issues. With the release of 19.04, and probably because of libpng16-16
this isn't so much a possibility anymore due to issues with installing from Debian package binaries which include libpng12-0:i386
If you cannot give up your Ubuntu system for some reason and wish to use the latest
versions of it, a fix for libpng12-0
is probably never coming, but a way to work around it is available.
Explanation of method
Note: The system must already be installed. I've attempted to confirm my findings in a live session and the means to download packages from the Ubuntu package archives are not available there. (I am sure I could had worked around it but didn't feel like learning more than I had to.)
isn't conventionally installable, we'll have to work around apt
and force it to accept a fake package of the same name. To do this, we'll use a utility for Debian systems and the actual package to be installed in conjunction to juke apt
it to do something a bit insane otherwise.
You can download the library files necessary for installation of libpng12-0
of these two locations:
You will also need ZSNES 1.42. Short of grabbing the files from zsnes.com and compiling it yourself, you can download an installable copy of the emulator here:
In your terminal, you will want to use sudo
with your system's archive manager, to open either of the archives, and just leave it there
; It will be used later.
Approaches of completion
Unless you want to buiild your own package, however. If you would rather do that, then at least the command will be in your history if your shell is configured to have a command history. (It usually is.)
Once you have all of the required files, you can pick from one of two options:
The do it now option
Download this fake copy of libpng12-0:i386
from GitHub and install it. After, attempt to install ZSNES 1.42; It should work. (Tested on a fresh copy of Ubuntu 19.10 via USB.)
The DIY option
If you don't trust pre-fabricated packages from unofficial sources around the Internet (No blame there) but
don't feel like compiling from source anything, then perform the following in a 32-bit Debian system
- sudo apt install equivs
- equivs-control [pkgname]
with anything after it will generate a package with whatever name you gave it. This can be different from the version identifier.
Further, don't end it with .deb
Open the control file you made with equivs-control
in your preferred text editor, then open DEBIAN/control
from the archive for libpng12-0:i386
and copy the contents of libpng12-0:i386 control
into the control file you made.
Of the modifications based upon the original control file for the one you had created, the following is what was done to produce the file you would had downloaded from above anyway:
- Change version from 1.2.8.to 1.2.9 (Probably unnecessary but did it anyway)
- Comment out (#) installed size (it's unnecessary)
- Comment out conflicts (Potential issue prevention)
- Comment out replaces (Potential issue prevention)
- equivs-build [pkgname]
Once finished, reboot into your instance of more recent Ubuntu then attempt to install it.
What should happen
Either way, the process of installing the fake libpng12-0:i386
should pull in libc6:i386
along with it. If this isn't the case, the you may have to download and install those files individually, as well. (And all of the other dependencies zsnes:i386
needs to function.)
Actually installing libpng12-0:i386
So right, you installed the fake package, but the files still
aren't there. The thing to do now is to open your file manager with sudo
and within there, navigate to /usr/lib
Once there, in the archive manager with the Debian package binary for libpng12-0:i386
opened navigate to /usr/lib
and copy its instance of i386-linux-gnu
into your local filesystem instance of /usr/lib
Then, attempt to run zsnes
. If you did everything right, then ZSNES 1.42 wiill open and you get to enjoy the last version of ZSNES with netplay functionality in the most recent instance of Ubuntu.
|Slightly well-versed on everything Linux||I'll beta-test your hack. Find me here!|