Possible Duplicate:
How to create a meta-package that automatically installs other packages?

I want to use Frescobaldi (an editor for Lilypond), but the packaged release of lilypond (2.12.3; lilypond is like TeX for scoresheets) in the official repos is a bit old, since I want to use some brand-new features. So I just cloned their git repo and installed it from there.

Now my question is, how can I tell apt, that I satisfied the dependency on lilypond manually, so that it doesn't tries to install another copy?


2 Answers 2


For where you're actually providing the dependency, I'd use checkinstall to do the installation. checkinstall basically replaces make install and generates a proper .deb package and then installs that. Not only does that allow you to remove or upgrade the package in a better way (when the time comes), it satisfies dependencies from other applications.

The alternative is writing a little dummy package that doesn't provide any files but claims to provide whatever you want. The easiest way I can see is using an application called equivs:

sudo apt-get install equivs
equivs-control lilypond

# edit your fake package so it has the right versions, names, description, etc
nano lilypond

equivs-build lilypond
sudo dpkg -i lilypond-dummy*.deb

There's a third route that is easy but the potentially harmful: just install it from the standard repos and then replace its files with the ones you generate. Lock the version of the package so it won't get upgraded. This has the scope to go wrong so only do it if you can't checkinstall or otherwise fake the package first.

  • Isn't there a way without tweaking the build process? Just like faking an entry in apt's database?
    – FUZxxl
    Mar 11, 2011 at 15:11
  • @FUZxxl That's what I'm talking about in the second paragraph. But before you go onto that, as I've said, checkinstall does a lot more for you than just satisfying a dependency.
    – Oli
    Mar 11, 2011 at 15:23
  • @FUZxxl I've added a portion about equivs
    – Oli
    Mar 11, 2011 at 15:28

You should have used dhmake or sudo check install instead of sudo make install. That way you create a deb (check install also installs the deb) of the later lilypond version ^^.

If you still have the source (and the object files/make file etc after your compilation), you can still do that without having to download again.

Not the answer you're looking for? Browse other questions tagged or ask your own question.