Re: lie to apt
On Thu, Feb 22, 2001 at 08:23:58AM -0800, Heather wrote:
> > On Wed, Feb 21, 2001 at 10:13:23AM +0000, Jacob Meuser wrote:
> > > Is there a way to manually edit the database that says which packages
> > > are installed? I set up a small system, using potato, and am adding
> > > several packages from source.
> alien can turn tgz's into really wimpy debs. or you could build a real
> deb file.
> Jacob, let us know if alien does it for you :>
This method seems to be both sufficient and efficient for what I want.
It seems to work easily with stow, because I usually build with a
prefix=/usr/local/stow/$packagename, so everything installs in a nice
easy to tar directory.
jakemsr:~/my_pkg$ tar czvf apache-1.3.17.tgz /usr/local/stow/apache
jakemsr:~/my_pkg$ sudo rm -rf /usr/local/stow/apache
jakemsr:~/my_pkg$ sudo alien apache-1.3.17.tgz
alien output, mostly it can't find dependencies for libmysqlclient??
I have php-4.0.4lp1 module with mysql-3.23.33 support. Probably
can't find the libs because I haven't deb'd them yet.
In any case it succeeded
jakemsr:~/my_pkg$ sudo dpkg -i apache-1.3.17-1.1.deb
.. success ..
The only downpoint is that everything is installed in /usr/local/stow/apache,
so for new packages, you still need to stow them to be of real use.
To solve this, configure for a "fake root". Use something like
./configure --prexif=/usr/local/altroot/usr/local, then make the tarball like
jakemsr:/usr/local/altroot$ tar czvf apache-1.3.17.tgz *.
Then the deb will install into /usr/local. In both cases, apt
and dpkg operated as expected on the deb. Mmmmm..... ALIEN.
I'm going to clean out /usr/local and try building everything with
the fake root method. I'll post my findings prob Sat afternoon.
> There is a "hello" package which is really an example of packing a deb.
> So, you could craft a really cheap package which contained your binaries;
> you could probably use something like GUItar (a gtk app for making backups
> which claims to have a file manager type interface ... mc won't work, I've
> tried that) to actually fill it up with carefully crafted pieces.
> It's extra trouble but you could set up a 'debianized' build environmant
> and then build debs the "normal" way - that would get you both binary and
> source debs if you want them. And if following instructions aimed at
> developers is easy for you, probably the easier way. (But maybe not easier
> than alien)
I started doing this, and if the package is debian aware, it's actually
rather easy. I don't really have much desire to be a Debian maintainer,
so after a while of reading and not finding a simplified way of creating
the control files, I gave up.
> > > I added stuff like glib-1.2.8, tcl-8.32,
> > > tk8.3.2, etc. How can I tell apt that these packages are installed?
> > > Or at least make it think the potato version is installed.
> Well, you *could* really install the potato version, then apply your own
> redirections on them. That's handled in /var/lib/dpkg/alternatives and if
> you install lynx-ssl there is a really nice example of it replacing lynx
> (because you might, for some reason, want to use the lynx without ssl.)
> I use this trick to redirect the SVGA server when I'm replacing it with
> some vendor's hacked version to make their card work... because it's really
> annoying to forget that you replaced it and have your card not work anymore
> when you take the plunge and upgrade. And if the upgrade *claims* it now
> covers your card - you still get the new one to try, so you can run it
My HD is 4.5G and has win on it also, it also seems sloppy to have old binaries
around that I don't have any need for. And like you said, an update would
point things back at /usr.
> > You may want to take a close(r) look at apt-cache. I have no idea if I'm
> > correct, or if so, how to use it in this method, but it seems like the
> > right tool for the job...
> I thought apt-cache was for keeping a batch of debs so a bunch of machines
> can share them? Anyways I just did an apt-get update and I don't even see
> apt-cache in there.
I used 'apt-cache search tk8' to find the packages that were part of the Tk
distribution. It's basically a list of all debs your system knows about,
either installed or available.