Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Sep 2008 04:09:57 -0700
From:      "James Strother" <jstrother9109@gmail.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: switching discs during install
Message-ID:  <4b2381fb0809070409h32107db3ge19ee8c36603b79d@mail.gmail.com>
In-Reply-To: <200809071022.37765.jmc-freebsd2@milibyte.co.uk>
References:  <4b2381fb0809060359u53f85d06u4696d527063c5e4d@mail.gmail.com> <48C26870.7050100@gmail.com> <4b2381fb0809062307x4b7ef550lfba5d74e9057dccf@mail.gmail.com> <200809071022.37765.jmc-freebsd2@milibyte.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
> They might not be as haphazard as you suggest. ISTR once reading that
> the CDs were arranged with the most popular packages on the first CD so
> that you would only need to download disk 2 (and 3) if you wanted some
> of the less common packages. With your suggested layout it's quite
> likely that a package which most of the others depend on would be right
> down at the bottom of the list with the result that you'd invariably
> need to download all 3 CD images.


I have to admit that I have no idea how they are organized, there could be
very good reasons for doing it the current way.  However, I was actually
only suggesting that the packages be sorted by "popularity", where
"popularity" is the number of packages which depend on the package in
question (this would need to include both direct and indirect
dependencies).  The most-depended-upon packages would go on the first disc
and the least-depended-upon packages would go on the last.  If you move from
first to last, then all dependencies are automatically satisfied.

While this should put most of the common packages on the first disc, you
could have a frequently installed package that was not highly depended upon
that was placed on the last disc.  If your aim was to minimize the number of
discs that had to be downloaded this ordering would be less that ideal.
However, there are a large number of orderings which still satisfy the
dependencies; the one I gave is just a good starting point.  If you wanted,
such packages could be "promoted" in the ordering by placing them
immediately after all of their dependencies had been satisfied.  In fact,
you could do this recursively for every package that the particular package
depended upon so that it occurred as early in the ordering as possible.  And
if you had a list of such "important" packages this could clearly be
performed for each (if you started with the least important and moved to the
most, you could ensure that the most important were placed earlier in the
ordering).


I think the best way to avoid the need for frequent CD switching would
> be for sysinstall to sort the list of selected packages into CD order
> before installing them. I imagine this would require some changes to
> pkg_add to prevent it from installing dependencies and I expect the
> possible benefits would not be considered to be sufficient to justify
> the effort.


I agree that fiddling with pkg_add to place the packages neatly on the disc
would probably not be worth the effort, but I'm not sure that it is
necessary.  In order for the method I suggested to work, sysinstall would
have to be modified to attempt installation in the selected ordering.  If
you had a list of the packages in this ordering, you would only have to flip
the "please install this one" bit for the selected packages, and then
traverse the list in order installing/ignoring each package.  Since all
dependencies would be satisfied by virtue of the ordering, pkg_add would
find that every dependency had already been satisfied and should not cause
any problems.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4b2381fb0809070409h32107db3ge19ee8c36603b79d>