Austin Ziegler austin@halostatue.ca writes:
ALL packagers should know what was installed and where; if they
don’t, then there’s a problem (even RPM knows this stuff).
Windows’
I agree that all package manager should know what and where they
install! But, like I said in the example with Debian’s package
manager, for the package manager to know all installed files, it
requires some additional work from the package builder.
This is a problem of the package manager, frankly. The only time
that this is something that could require work on the matter of the
package maintainer is for files generated during installation –
like Perl when it generates its HTML help files during installation
(at least on Windows using the AS installer).
If the package consists of exclusively ruby files, then the
package builder can just assume that that’s all in that package.
Howeveer, if a package needs to be compiled, and the compilation
produces a bunch of object files, then the person doing the
packaging have to add manually/semi-automatically each created
object files and/or config files into the list of files of that
package.
This applies only when you’re compiling the file(s) from scratch,
which may not always be the case. It is also possible to have the
packaging system parse the makefile(s) used to determine the targets
which need to be included. (Then again, I’m curious how the package
system would know which binary items to install in the first place,
and why telling the package this couldn’t also initiate the build
process, if necessary.)
GNU stow is a solution towards this put-all-in-one-place thinking.
You may not like it the way it works, but you gotta love the
simplicity it produces.
Actually, I don’t like stow at all, because it depends on symbolic
links, which is not a remotely useful solution except on Unix boxes
– and I personally wouldn’t use stow on my Unix boxes at all.
(Ultimately, stow doesn’t solve the problems of single
installation places, which are conflicting dynamic library versions,
and instead adds an unnecessary indirection.)
For example, in Debian, kde3 is still not officially included.
[…]
Um … when I tried Debian (for all of two hours when I decided that
the installation process sucked so much that I didn’t want to deal
with it), KDE3 was included.
Finally, installing a package in your own home directory may work
in some cases. But what if you’re working with a group of people.
Most package installers on unix support the specificaion of
alternate prefixes – allowing installation in $HOME, /usr, or
anything else.
In this case, the sensible solution is to install the package in a
centrally accessible place. May be in Windows where only one
person works on a machine, there is no difference between home
directory installation vs. central installation.
You’re completely wrong here. There is, at least with all NT-based
versions, and to some degree with 9x versions, limited ways of
supporting “local” installations. (NT-based versions have
significantly more flexibility here.) There is actually a difference
in installation.
My point is, DOS had it right by putting each application in its
own
directory. Windows had it wrong. Unix, CPAN, etc. also had it
wrong. There’s no sense in continuing an otherwise bad practice.
Stow, however, doesn’t fix the actual problem with this allegedly
bad practice. The problem here isn’t /usr/lib or
\windows\system32, but with conflicting library versions and no
clean way of managing it. Stow doesn’t fix this. Neither does going
back to statically compiled binaries or replicating libraries in the
directories of all binaries.
libcygwin, for all its faults, have managed to implement link in
Windows filesystem.
No, it hasn’t. It simulates it by creating files that point to the
actual file. It’s not a filesystem solution. It only works on
programs which use the filesystem functions in libcygwin itself –
which is a tiny percentage of the programs which would be used in
any given Windows installation.
Even if libcygwin has more faults than goodness, there are many
other UNIX emulations layer that implements file link in Windows.
Furthermore, it should be noted that it is possible to pick just
what you want from a library, especially one whose source code is
open.
Sorry, but it isn’t possible – because the OS filesystem itself is
closed.
-austin
– Austin Ziegler, austin@halostatue.ca on 2002.11.08 at 19.19.56
···
On Sat, 9 Nov 2002 08:58:08 +0900, Yohanes Santoso wrote: