Question

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?

Was it helpful?

Solution

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;

  1. 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.

  2. 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.

  3. 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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top