Newbie questions about updating

Jerry McAllister jerrymc at msu.edu
Fri Sep 7 09:21:39 PDT 2007


Hi,

I can't answer all your questions, but will take a shot at a couple.
You should check out the handbook at:

  http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports.html
and
  http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/
For more complete information.

On Fri, Sep 07, 2007 at 12:35:39AM -0500, cothrige wrote:

> I know this is going to be a very dumb question, but I just can't seem
> to get my mind around exactly what is involved and what I should do
> regarding this issue.  I understand from reading the handbook that the
> ports system is completely separate from the OS itself, and that these
> can be upgraded or updated separately.  From what I can see this seems
> to most often involve CVSup, and I have been operating under the
> assumption that one must run two cvsup operations with two separate
> supfiles to update both the core OS and the ports.  Am I understanding
> this correctly?

No, not quite.   They are two separate things, but can be run from
the same supfile in the same csup run.    By the way, cvsup has
been replaced by csup which is now in the base system from about 6.2 on.
or maybe it was 6.1.
Here is the relevant part of my supfile:

 --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  
  #
  *default host=cvsup.FreeBSD.org
  *default base=/var/db
  *default prefix=/usr
  *default tag=RELENG_6_2
  *default release=cvs 
  *default delete use-rel-suffix
  
  *default compress
  
  ## Main Source Tree.
  # The easiest way to get the main source tree is to use the "src-all"
  # mega-collection.  It includes all of the individual "src-*" collections.
  src-all
  
  ports-all tag=.
  
  doc-all tag=.
  
 --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  
 
This gets 6.2 OS and the latest ports and docs.
You could put tag=RELENG_6 and get the latest OS updates for 6.xx (but
not the latest over all) included.

> Assuming I am, my main confusion concerns just how these two systems
> actually interact and relate to each other, and whether there are any
> requirements connecting updating each of them together?  For instance,
> I have downloaded the FreeBSD 6.2 install discs and have finished the
> basic installation and setup.  Now at some point if I wish to update
> the ports does that mean I have to update the OS to a particular
> level?  If I don't want to run stable and use "tag=RELENG_6_2" will I
> be required to keep the ports as they have installed from the disc?
> Is there any connection between how current the ports are and how
> current the OS is?

They do interact and there can be problems.   The OS has versions.
The ports tree does not.  It is just the latest that has been
supplied by the port maintainer.   As the OS gets older, it becomes
more likely that a giver port is too new for it and may not build or
run on it.   It can happen the other way around too - the OS is too
new for the present condition of the port.   But, there is an attempt
to keep this from happening.

When the head of an OS branch is getting to the point of making
a new RELEASE, then a freeze is put on code in the OS thus making
a temporary non-moving target to build all the system plus the ports
against.  It is generally up to the port maintainers to make sure
their port[s] can build to that frozen image.   When all seems to
build, run and test together then a RELEASE is made.   Then the
branch is unfrozen and changes start coming in again - both to the
base OS and to the ports.

In general, the OS versions are managed so that anything that will
run in one version of a main branch will run in another.  eg, if
it will run in 6.1, it should run in 6.2 and 6.3.   But it may well
not work in 7.xx because os some non-compatible change introduced
in the new major branch level.   That is the main part of the
decision to create a new main branch and what usually determines 
whether some change will be introduced in a lower branch or reserved
for a higher branch.

But, again, the ports are not limited to a version so in some cases,
especially when signiicant time has elapsed, a port may not build
or run on some version.   You may need to go back and get a legacy
version of the port to make it run, or note the changes and tinker.

In practice, though, it usually works well to keep your OS and ports
up to date.  Developers and maintainers try to make things work and
to keep them compatible as far as possible.

////jerry

> 
> One of the things which caused me to wonder about this was that some
> time back I tried FreeBSD out for a while and ran into some oddities
> concerning the ports system.  When I first finished setting things up
> I could install packages using "pkg_add -r", but noticed that after
> updating the ports I could no longer do that.  That struck me as odd,
> and because of it I always had a suspicion that I had broken the
> system with my out of whack updates (I did not move up to stable at
> that time) but I just never could really find out if that were so.
> 
> One last newb question is concerning cvsup itself.  In reference to
> ports is there a difference, in the end, between this and portsnap?
> Do they result in the same ports?  I am sure this is answered
> somewhere, but the handbook and other sites seem to take a somewhat
> ground-eye view of how to use them but don't dwell much on the
> mysteries behind what they do and how they may differ.
> 
> Many thanks for any clarification that can be offered to me on these things.
> 
> Patrick
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"


More information about the freebsd-questions mailing list