How to fix dependency problems on Ubuntu based Linux distros
- Ubuntu is based on Debian, and there are Linux distros that are based on Debian. Also, there are a lot of Linux distros that are based on Ubuntu. This tutorial should work with all of these Linux distros.
- This tutorial is not for beginners, but I tried to keep it simple as possible.
Introduction about dependency problem
Dependency problem is related to outdated dependencies which is a common issue on Ubuntu based Linux distros for a few reasons:
- Some software developers do not give additional support to their software.
- Some manufactures do not give additional support for their old drivers or applications.
In this tutorial, I will give you 2 examples of outdated drivers / applications that can not be installed on new Ubuntu based Linux distros, and a way to fix each one of these conditions.
Boostnote
The first example is boostnote_0.16.1
which workes til Ubuntu 20.04, and does not work on Ubuntu based Linux distro starting from version 20.10, and the support for this application has been stopped for almost a year.
The Linux distro I used is Kubuntu 20.10 which is based on Ubuntu 20.10
- The file manager: Dolphin
- The terminal: Konsole
- The package manager: Muon Package Manager
The solution for Boostnote
1- You can download boostnote directly from this link » https://github.com/BoostIO/boost-releases/releases/download/v0.16.1/boostnote_0.16.1_amd64.deb
2- Open the folder where you downloaded the file, and right click on any empty space inside the folder, and pick Open Terminal Here
3- Write this command in the terminal to install boostnote_0.16.1_amd64.deb
inside the folder without installing the required dependencies
|
|
As you see in the picture, there is 3 dependencies that is not installed on my system: gconf-service
- gconf2
- gvfs-bin
4- I opened the package manager (Muon) to search for these dependencies one by one
-
I found
gconf-service
, andgconf2
, but I did not findgvfs-bin
-
After a little search, I found that
gvfs-bin
can be dropped, and that what I will explain how to do in the next steps.
5- Create an empty folder with the name tmp
using this command:
|
|
6- Unpack the contents of boostnote_0.16.1_amd64.deb
to tmp
folder using this command:
|
|
7- Open tmp
folder, then open control
file inside DEBIAN
folder
8- Remove gvfs-bin
, from the the text file, and it should look like this:
Image5.png
After you finish save the text file (File » Save)
9- Delete boostnote_0.16.1_amd64.deb
10- Pack the contents of tmp
again, using this command:
|
|
11- Use these commands to install boostnote_0.16.1_amd64.deb
and its dependencies correctly this time
|
|
control
file correctly, you will not encounter any errors this time.iP2700 series IJ Printer Driver
The second example is: iP2700 series IJ Printer Driver which is made to be installed on Ubuntu 9.10 (32bit)
- The link of this driver -> https://www.canon.com.au/support/sims-content?pid=9359fa0798c54eeeadf89843512d7882&cid=87FC144EA2C54EF29F637118BB6D6231&ctype=dr
- That driver worked til Ubuntu 18.04, and does not work on Ubuntu 20.04
The Linux distro I used is KDE neon User Edition which is based on Ubuntu 20.04
-
The file manager: Dolphin
-
The archive tool: Ark
-
The terminal: Konsole
-
The package manager: Muon Package Manager
-
You need to install it using this command from the terminal:
1
sudo apt install -y muon
-
The solution for iP2700 series IJ Printer Driver
1- Download the driver, Open the file manager, and extract the compressed file
- To extract the file right click on it, go down to Extract menu, and pick Extract archive here, auto detect subfolders
2- Open the extracted folder, and you will find a folder inside it with the name “packages” that contains 2 DEB files which are the Debian packages
- Debian packages are the universal packages that can be installed on any Debian / Ubuntu based Linux distro
3- Right click on any empty space inside the folder, and click Open Terminal Here
4- You need first to write this commands in the terminal to enable 32bit architecture which is not enabled by default
|
|
- After using the sudo command, the terminal will ask you for your account password, you need to enter the password you used during the installation.
- While entering the password, you will not see any asteriks in the terminal, do not worry, that is a security measure, just keep writing the password, and press enter after you finish.
5- Write this command in the terminal to install the 2 Debian packages inside the folder without installing the required dependencies
|
|
5- Use this command to install the required dependencies:
|
|
- When asked Do you want to continue, press y, then press Enter from the keyboard.
- This command installed the required dependency for
cnijfilter-common_3.30-1_i386.deb
»libpop0:i386
- But it removed
cnijfilter-ip2700series_3.30-1_i386.deb
because it can not satisfy its requirements.
- But it removed
6- I used the previous command to see what exactly the unsatisfied dependencies for this package
|
|
As you can see in the previous picture: libgtk2.0-0
, libpng12-0
, and libtiff4
are the unsatisfied dependencies.
- Keep in mind that all the dependencies are 32bit, and 32bit packages on Debian / Ubuntu have
:i386
at the end of each one of them. - Do not close the terminal until the end of this example.
7- I opened the package manager to search for these dependenceis one by one
- I found
libgtk2.0-0
- I did not find
libpng12-0
, but I searched for libpng, and I foundlibpng16-16 (i386)
version 1.6.37-2
- I did not find
libtiff4
, but I searched for libtiff, and I foundlibtiff5 (i386)
version 4.1.0
8- Create an empty folder with the name tmp
using this command:
|
|
9- Unpack the contents of cnijfilter-ip2700series_3.30-1_i386.deb
to tmp
folder using this command:
|
|
10- Open tmp
folder, then open control
file inside DEBIAN
folder
11- Edit libpng12-0
, libtiff4
, and their version to be like in this picture:
After you finish save the text file.
12- Delete cnijfilter-ip2700series_3.30-1_i386.deb
13- Pack the contents of tmp again, using this command:
dpkg-deb -b tmp cnijfilter-ip2700series_3.30-1_i386.deb
14- Use these commands to install cnijfilter-ip2700series_3.30-1_i386.deb
and its dependencies correctly this time
|
|
control
file correctly, you will not encounter any errors this time.If you have any questions, write it down below, or you can contact me directly by my E-mail account.
If you want to get notified when we post a new content by adding our RSS feed to your feed list, or by joining our Telegram channel.
If you find this post helpful, please consider sponsoring.
Sponsor