Ok here's an improved description of how it works. The key to the whole
thing is the snapshot of the ports tree. Everything else follows from that.
A predetermined set of packages is built from a ports tree. The most
benefit comes with packages which would acceptable for use with the default
config and require a lot of compile time (large distfiles and/or lots of
dependencies). This probably means xorg, window
managers, desktop environments and applications plus dependencies and
libraries. The ports tree is not updated during this process. The ports
tree and package tarballs are made available online as a ports-snapshot
tagged to identify it. The tag could be a text file with a date in it
which lives in the snapshot directory.
This cycle is repeated at some suitable interval, by taking a new ports
tree and building packages for any ports that have been updated in the
actual build process could be done by one of the ports-mgmt tools which
would take care of only updating changed ports or ports whose
dependencies had changed). The new packages and the ports tree used to
create them are tagged as a new snapshot.
How to use:
For a fresh install a user installs FreeBSD then downloads the tagged ports
tree. S/he can then install packages from the ports-snapshot knowing
that everything is in sync versionwise. At this stage the selection of
packages is down to the user (plus dependencies will automatically be
pulled in). Additional ports that are not in the snapshot can be
installed using the normal ports mechanism and they will automatically
be in sync.
For an existing install, when a new ports-snapshot is available changed
packages can be installed
using some utility (call it ports-update) which downloads and installs
the ports tree and tag file from the snapshot, checks
versions of installed packages and upgrades accordingly. People can
choose to upgrade frequently or infrequently. By choosing a tag users
can choose to upgrade to the most recent ports-snapshot or an
intermediate one. At this stage the selection of packages to upgrade is
by ports-update. ports-update compares the version of each installed
package with the one in the ports-snapshot. If a newer version exists
ports-update installs it. Any installed packages which are not in the
ports-snapshot are ignored.
If a user wants to install or upgrade ports which are not in the
ports-snapshot this can be done with the standard ports mechanism. As
the bigger ports are already
available as packages in the ports-snapshot any additional ports will be
relatively quicker to
install by building from source. If a port is being installed or
upgraded and it has a dependency which has been installed from the
snapshot the dependency port will be the right version and the new port
will integrate perfectly.
Thanks for reading this far
email@example.com mailing list
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"