On Sat, Aug 11, 2007 at 09:01:27PM +0400, Rakhesh Sasidharan wrote: > > Kris Kennaway wrote: > > >On Sat, Aug 11, 2007 at 11:37:22AM +0200, Tobias Roth wrote: > >>Kris Kennaway wrote: > >>>On Sat, Aug 11, 2007 at 12:03:33PM +0400, Rakhesh Sasidharan wrote: > >>>>Hi, > >>>> > >>>>Just a question that struck me today. Before there were the portupgrade > >>>>and other tools for upgrading installed applications to their newer > >>>>versions, how did things work out? > >>>> > >>>>Did one upgrade applications through a series of "make deinstall > >>>>reinstall" commands (I wonder if these commands take care of > >>>>dependencies > >>>>too) or was there any other way? > >>> > >>>Basically that, plus a lot of other manual steps that were always > >>>somewhat hard to get exactly right but which more or less worked back > >>>in the days when Gnomes lived in your garden and Java was a place on > >>>the map. It was a simpler, more innocent age. > >> > >>There was pkg_version -c that printed a sequence of > >> > >>cd /usr/ports/foo/bar > >>make > >>make deinstall > >>make install > >>make clean > >> > >>or something like that. Whatever broke was fixed manually afterwards :-) > >>Oh, and there was no UPDATING in /usr/ports/ as well I think. > > > >Old-timers will tell you that pkg_version is a new-fangled invention, > >and back in the day they had to slave for hours over a hot keyboard to > >run all those make commands by hand :) > > I see. That bad eh ... no pkg_version even! I guess then the only way was > to track cvs updates to see if anything of interest has been updated > recently and then upgrade it manually. :-/
Pretty much. It more or less worked when the ports collection was small, applications were mostly self-contained (few dependencies), and updates were infrequent. Obviously that approach did not scale. > I'm curious now -- how does portupgrade (that's the tool I know/ use so > I'll use that as an example) do its upgrading? I have seen that in case of > an upgrade in builds the newer version, uninstalls the previous one (even > though it might be required by other apps), and then installs the newer > version. How does it do that -- by some magic of its own or does it use > the usual ports commands etc? At the core it uses the usual port commands, but there is a lot of higher level logic around that to do things like planning and ordering of upgrades and error recovery. > Any place where I can get more info on these 3rd party tools? Not too > techie, but a bird's eye view of things ... Apart from the code itself I am not sure about this. Kris
pgp7EcE6tyGyE.pgp
Description: PGP signature