Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Sep 2007 15:04:50 -0700
From:      Gary Affonso <glists@greywether.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: Philosophy of default "pkg_add -r" PACKAGESITE?
Message-ID:  <46F19D02.6020903@greywether.com>
In-Reply-To: <46DCCC2C.7030402@greywether.com>
References:  <46DCCC2C.7030402@greywether.com>

next in thread | previous in thread | raw e-mail | index | archive | help
First off, thanks to Kris and Mel for the previous definitive answers.

Let me see if I can summarize this correctly...

1) It's important that administrators who are taking advantage of 
pre-compiled packages (like me) use packages that have been compiled for 
their particular base system.

2) For users running a "release" base system, there is set of 
pre-compiled packages provided for use with their particular release.

These are the packages found on the FTP site in the "release" folders on 
the FTP site.

3) The default behavior for "pkg_add -r" on RELEASE systems is to source 
it's pre-compiled packages from the "release" directory matching the 
underlying base-system's release.

For a 6.2-RELEASE base system (for i386), "pkg_add -r" will source 
packages from...

   /pub/FreeBSD/ports/i386/packages-6.2-release

4) Those "release" packages are never updated for any reason.  The list 
of available packages neither increases nor decreases, the versions of 
the packages made available doesn't change, and (presumably) the 
packages are never recompiled once the release has occurred.

It's a static list of packages compiled (and tested) for a particular 
release and then never touched again.

5) If an admin wants to install pre-compiled packages that are not 
present in the default "release" directory, they can configure "pkg_add 
-r" to source packages from one of the other "package" directories by 
setting the PACKAGESITE environment variable to point to one of the 
other package directories.

6) Care should be taken when re-pointing PACKAGESITE as it would then be 
possible for you to install a package that's been compiled against a 
different version of some base-system library than you are currently 
running.

----

How'd I do?  Assuming I did well, a couple of more questions...

1) Regardless of what base-system version you install, eventually the 
base system will need to be updated (in the least, to apply security 
updates).

So generally one important decision is what "version" of FreeBSD you're 
going to track when doing updates.  Security?  Stable?  Current?

So what's the recommended application install-procedure if you start 
with a release system and then track "security" via freebsd-update? (A 
common scenario, I presume.)

It would seem that "pkg-add -r" is a no-go in this case.  If you leave 
"pkg_add -r" pointing to it's default source, it'll grab packages 
compiled against the "release" system which, while unlikely, may have 
libraries incompatible with your new base system that's tracking security.

If you change "pkg-add -r" to source from "stable" or "release" you're 
getting packages compiled against a base-system even more different than 
your own "security" base system.

As far as I can tell there is not set of pre-compiled packages that have 
been compiled against the "secure" track.

2) How does "pkg_add -r" know it's on a "release" system?  The handbook 
says that "pkg_add -r" will download from either the "current", 
"stable", or "release" package directories as appropriate.

How does it know I have a release system and not a stable system?

Particularly since my system is not *really* a release system once I do 
my first freebsd-update, right?.  At that point it becomes a system 
tracking "secure", right?

----

Thanks again for the input so far.  The package thing is making way more 
sense, hopefully a few more clarifications and I'll grok it.

Thanks,

- Gary



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