Some background: I'm using Debian 7 as my main environment, and I want to tell my system that I have glibc = 2.15
in addition to the environment's required glibc = 2.13
for the purposes of using some more recent applications.
I got the glibc from the various tutorials on the web for installing eg.: Steam. It is unpacked in /usr/local/lib/libc6-2.15
and I've tested it with some applications such as Pidgin 2.10, Boinc 7 and Stellarium, it's working well (so far, I do expect it to eventually fail gracefully). Since it'd be much better if I could install those applications from packaged sources as well (both clang and Boinc are in testing for example), I'd like to tell my system via a virtual package that I do, in fact, have a glibc 2.15 available.
Of course I know about equivs
as a tool to create virtual packages for stuff that one does not have installed from repositories, but I have found no good documentation so far on how to use equivs
to create a virtual package that can update an already installed package, ideally without breaking.
I first tried the obvious:
Package: libc6
Version: 2.15-1
And dpkg-installed the generated package, with the expected result that it uninstalled the already present libc
to update and left the system in an unusable state. (Of course, I tried this in a VM). I've also tried
Version: >= 2.13
Without any good results.
I tried to look for a way of using Provides or Enhances by creating a package of a different name
Package: local-libc6
Version: 2.15
# Either this:
Provides: libc6
# Or this:
Enhances: libc6 (< 2.15)
But so far I have had no success in getting equivs
to create an installable package (aptitude complains about an invalid Provides or Enhances), or even to create a package at all.
Of course, the idea is to create a virtual package for libc
that won't uninstall the already installed one, and merely "provides" the new version. But I've found the documentation horribly lacking in that respect so far (and I really don't want to have to delve deep and become lost into the DPKG Encyclopedia; usually I have the disposition and time to do such tasks, but these days my focus is needed elsewhere).
So, I guess the base question is: can I use equivs to create an update for a package without uninstalling the original, or achieve something to that effect? What general cares do I need to exercise when specifying versions to equivs
?
sudo apt-mark hold package_name
? Or force reinstalling it after it was removed? Did you compile glibc from source? (if so see checkinstall, even to see the type of output control file that comes from it and it's also supposed to allow a package to install independently from other packages so maybe dpkg reacts differently? and dh_make in the context of creating packages.)