The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Clem Cole <clemc@ccc.com>
To: Henry Bent <henry.r.bent@gmail.com>
Cc: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] Package Management
Date: Sat, 21 Nov 2020 17:23:45 -0500	[thread overview]
Message-ID: <CAC20D2OUZ1eMr7oYWtrLD_=58g-kSn6DrMceGghNaM+pOsAZbQ@mail.gmail.com> (raw)
In-Reply-To: <CAEdTPBcYUi61_5U3WiunnxphfbLw_xU+3_xLRAb2KSanwJwhBw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5451 bytes --]

On Fri, Nov 20, 2020 at 4:33 PM Henry Bent <henry.r.bent@gmail.com> wrote:

> I know I have asked this before, but I am curious about any new replies or
> insight.  How did package management start?
>
Really good question.   I thought the PKG_ADD we had on Masscomp in '83 was
grabbed from PWB 3.0.  Unfortunately, Warren's stuff does not include, but
that is known to missing things (like SCCS which was first distributed as
part of PWB 1.0 and every version after).

So here is what I remember ...

When we did the '85 /usr/group standard, one of the things we argued about
was how would an ISV >>deliver<< a binary *I.e.* 'interchange' between two
systems to use the TOPS-10/TOPS-20 terminology (which is actually what we
were using since most of us were familiar with same).   By the time we got
to IEEE P1003, the whole reason USTAR was created was to solve that - which
begat the famous Tar Wars of the Research (TAR format) *vs*. CPIO (AT&T)
types [USTAR was a compromise and as I have said previously, was picked due
to the code in Ken's original implementation of the header CKSUM so it had
an unintended extension mechanism and as ASCII - cpio was binary in those
days AND could not be extended so older readers could at least read a new
tape).

The 'install' was left to each ISV and the assumption had been you would
use a USTAR tape (and eventually the PAX program) to read the bits, but
each ISV did their own 'installer.'  The idea of keeping a system-wide DB
on what was installed was still in the future.    PWB 3.0/System III
PKG_ADD was primitive, but my memory is it was the first attempt.  I do
remember it was on a number of System III based systems but was very much
tied to installing the AT&T supplied SW - which I suspect was leftover from
the AT&T external maneuver of trying to supply everything and was difficult
to use by ISVs and I don't remember many doing so.

As you point out, the first commercial UNIX I remember that really tried to
solve it, was Ultrix which had something for both their own use and for
their ISV's (setld) - which frankly sucked and I personally hated and
railed against.  But to DEC's credit, it was there.  It was modeled after a
similar tool for VMS.  Truth is, for a while it was the best.  The biggest
thing that setld did (which in practice it did poorly) was trying to keep a
DB of what you installed so that an admin could type a command and see what
had been loaded, and when and also what licenses were installed to run
purchased software.  Basically, it was driven by field service and SW
licensing.

When FreeBSD 1.0 came out, the big thing Jordan Hubbard did (and was much
better than Linux installs for a long time) was work on install >>for a new
system<<.  He also created the idea of 'packages' which were all of the
thousands of UNIX tools that people had ported to FreeBSD and could
optionally be installed.  I think it really was the first of the same name
and most of the features we know.  By today's measure, again it was crude,
my memory is that unlike setld, since it was not managing licenses, he
didn't think to add a DB/log of what was being installed.  He did not try
to solve the 'update' problem when a new version of FreeBSD was released
BTW.  Basically, you needed to do a new install.

Roll forward a couple of years and Linux eventually picked up Jordan's
basic installer framework which vastly improved the out-of-box for some of
the Linux distros.  But the important thing that RH did beyond FreeBSD was
to create RPM, which added a setld like DB to the scheme, not for licenses,
but so that you could easily do updates, add options, etc.  They combined
Jordans install ideas and packages ideas, which was cool for a system where
you got/get everything from the distro.

The truth is, none of the Research UNIX, FreeBSD nor Linux really put the
effort that DEC, Masscomp, Sun, IBM, HP did in how to update a system.
*i.e.* I'm currently running version 10.13.5 and I want to get to 10.14.2
-- what needs to be installed and how will it affect already installed and
running ISV codes.  [ IMO Microsoft is the worst and Apple is not much
better].

Linux is a weird one.  Because of the 'open source' thinking, the idea of
keeping old binaries running is not the high order bit.  DEC, IBM, HP,
Masscomp, and to some extent SUN and SGI, because they had a market for
commercial SW, have tried to keep old binaries going.

So ... now we have apt-get - which for what it is, works pretty well but,
it still does not solve a problem someone like my firm has that sells
commercial SW.    FWIW:  Since I actually wrote the spec for it inside
Intel, I can tell you what the design/goal/direction to tell the install
teams in that my employer distributes using RPM and >>is suppose<< to work
unmodified with an RPM-based install (*i.e.* be 'socially compliant' to the
norms of a more commercial-like Linux site).  The >>idea<< is that the RPMs
are supposed to be able to automatically converted to Yum and a few other
formats (check the specs here for each tool, however -- this is not a
warranty from me - YMMV -- just telling what I >>personal<< scream at the
team when I discover they did not test properly as sometimes they do break
that - which can cause big issues when trying to install on a
supercomputer).  The >>idea<< is that the current generation of package
tools, like setld of yesterday, will allow the admin to what's running on
the local system.

Clem

[-- Attachment #2: Type: text/html, Size: 8492 bytes --]

  parent reply	other threads:[~2020-11-21 22:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-20 21:32 Henry Bent
2020-11-21  0:55 ` Jeremy C. Reed
2020-11-21 17:50 ` arnold
2020-11-21 23:30   ` Gregg Levine
2020-11-22  1:17     ` Clem Cole
2020-11-22  1:39       ` Warner Losh
2020-11-24  7:35         ` Stuart Remphrey
2020-11-21 22:23 ` Clem Cole [this message]
2020-11-21 23:24   ` G. Branden Robinson
  -- strict thread matches above, loose matches on Subject: below --
2017-01-24  4:27 Henry Bent
2017-01-24 17:06 ` Clem Cole
2017-01-24 17:46   ` Henry Bent
2017-01-24 18:58     ` Tim Bradshaw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAC20D2OUZ1eMr7oYWtrLD_=58g-kSn6DrMceGghNaM+pOsAZbQ@mail.gmail.com' \
    --to=clemc@ccc.com \
    --cc=henry.r.bent@gmail.com \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).