> > Have you seen "pio" the Package Installation Observer in the Hints?
> [...]
> >
> > [...] do a "make install", et seq., and I'll record what gets installed
> > [...] handy things are then possible, like searching through them to
> > see which package a particular file belongs to.
> >
>
>
> Sometimes o/c a package cmmi skips creation/&c of a particular
> '(path,type,contents,permissions,ownerships,...)' item, because it sees
> that such an item already exists: the latter may have come from
> an earlier version of the package, or from a different package, or
> somewhere else.
>
>
> Does pio list that the current cmmi package (joint-)owns that item ?
>
>
> akh
>
In the first place, I must run pio at the appropriate times, _generally_ in my
build scripts just before make install, or sometime before make, depending on
how the package builds itself, and again _generally_ after the following
configuration bits in the book are done. If some of those I deem idiosyncratic
to a particular system, they go into a different part of my build script.
In general characteristics, pio is a "time stamper" that compares "snapshots"
of given branches of the FS, ignore others (i.e. /var/log typically) at two
different times, then constructs a script that will remove whatever popped up.
It really doesn't "care" or impose meaning on what just happened. Perhaps I
was planning to visit a dodgy website or use a dodgy javascript?
Other functionality is added on. For example, immediately after I run it the
second time to get the removal script, I run its "backup" function that
tarballs those pristine files.
As I already said, at this time I can also *tell it* what the package's
dependencies were, just so it will warn me if I try to remove any of them, but
with my OK it will do it anyhow. It never deletes a backup tarball! I may be
about to replace that dependency. pio can't know if it will "work", of course,
but when I removed it I had the option of removing that removal script. I
wouldn't in such a case. Then I install the replacement normally. If it's a
cockup upon testing, I can remove the replacement and restore the original from
the backup, none the worse for te attempt.
Besides the normal "B depends on A", if A's only function is to support B, I
can *tell* pio it goes the other way too, "A supports B". That way if I decide
to dump B I can track down everything installed for it and remove them too.
All these things are just well-formed comments in the removal scripts that can
be grepped. But it's up to me to use them or not.
To reiterate, pio's "attitude" is _NOT_ "I'll do all the package management for
you", but "I'll give you some basic tools to assit you doing package
management." I like that, because as your question suggests, sometimes it's
not such a simple task. And sometimes we have to think about how to control it
first. pio won't protect me from myself or my own misuse, but I really don't
want it to try!
[10:01 ~]# pio --help
Usage:
pio PKG
pio command
[--cd] [--deps] [--help] [--profile] [--version]
pio command [argument]
[--cwd [...]] [--ls [PKG*]] [--lsbak [PKG*]] [--dirs [PKG*]]
pio command argument
[--edit PKG] [--remove PKG] [--backup PKG] [--restore PKG]
[--check PKG] [--files PKG] [--files0 PKG] [--list PKG]
[--xcheck PKG] [--find FILENAME]
pio PKG command argument
[PKG --requires PKG2] [PKG --uses PKG2] [PKG --supports PKG2]
pio [PKG] --lib [LIBNAME]
pio [PKG] [--watch DIR1 DIR2 ...] [--ignore DIR1 DIR2 ...]
i.e.
PKG observe installation start/finish of PKG
--backup PKG create a backup of the files in PKG
--cd change the current directory to /usr/local/pio
--check PKG check current files against backup
--cwd [...] execute with arguments given in [...], but create all
working files in ./ (only works as first option)
--deps show all dependencies and usages
--dirs [PKG] show the defaults for --watch and --ignore or the
values used for the (current) installation of PKG
--edit PKG edit PKG's script preserving the file's timestamp
--files PKG list the files in PKG
--files0 PKG list the files in PKG with null-terminated names
--find FILENAME tell which PKG installed files matching FILENAME
--help display this help and exit
--ignore DIRn paths excluded from being watched during installation
--lib [LIBNAME] tell which programs use libraries matching LIBNAME
--list PKG list information about the files in PKG
--ls [PKG] list all de-installation scripts matching PKG*
--lsbak [PKG] list all backups matching PKG*
--profile print definitions required for option --cd and for a
variable containing /usr/local/pio
--remove PKG call the de-installation script for PKG
--requires PKG2 note the dependency on PKG2
--restore PKG restore files from backup PKG
--supports PKG2 note the exclusive use by PKG2
--uses PKG2 note the advantage because of PKG2
--version output version information and exit
--watch DIRn paths to be watched during installation
--xcheck PKG cross-check contents of PKG against all other
(executable) de-installation scripts to find out
whether a file has been installed more than once
[10:02 ~]#
--
Paul Rogers
[email protected]
Rogers' Second Law: "Everything you do communicates."
(I do not personally endorse any additions after this line. TANSTAAFL :-)
--
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page