The problem I want to solve is that I want to install an app from source.
When I tried to install that app, it said that it needs valac-0.16
, but when I tried to install valac
from terminal, it is only installing an older version, valac-0.14
.
Then I tried to download the new version of valac-0.16
and tried to install it, but it still shows the dependency is not satisfied.
How can I install a new version of a app that not in the repos?
If I understand your question correctly, you want to install a package which somehow Depends: valac (>= 0.16)
and it refuses to install although you downloaded and installed the valac
upstream sources.
If you have a package which declares a dependency which cannot be satisfied, dpkg
will refuse to install it until dpkg
knows that the dependency is satisfied. There are three possible fixes;
dpkg --force-depends-version -i package
will make dpkg
accept valac
0.14 even if package
states that it requires >= 0.16. More generally, dpkg --force-help
contains various hints for how to make dpkg
shoot itself in the foot in various interesting and sometimes useful ways. If you are not using dpkg
directly, there are ways to pass in these options from apt-get
, aptitude
, etc.
If valac
has a debian
directory, or you otherwise know how to create a package from the 0.16 sources you downloaded, just build and install a deb
package instead. debuild -us -uc -rfakeroot -b
should be all you need if the pieces are there (most notably, debian/rules
). Alternatively, you may be able to piece together a package from apt-get source valac
and installing the 0.16 upstream sources in the 0.14 package source tree, then rebuilding.
If you have a local install of a package which would satisfy the dependency, but dpkg
doesn't know about it, you can create a dummy package and install it; then dpkg
will be satisfied. The equivs
package allows you to easily create a dummy package like that.