Regarding packages and ports, up to dateness

Bob Johnson fbsdlists at gmail.com
Sat Sep 17 22:14:48 PDT 2005


On 9/17/05, Milscvaer <millueradfa at yahoo.com> wrote:
> 
> 
[...]
> However, there is room for improvement. One of the
> major issues I have is with the out of date binary
> packages available for the latest stable release
> (5.4). 

The packages distributed with the release are current at the time of
the release.  The package build system maintains up-to-date packages
for most of the ports, so you can update to newer packages if you
wish.

> Yes, I know that there are much more up to data
> packages in Ports, I know many people just love
> spending hours of time compiling and recompiling ports
> over and over agian every time they want a new version
> of software X, but many of us have better ways to
> spend our time and computer resources. Many of us do
> not have fast enough computers to make this possible
> (it would take a week). Please, please, please offer
> up to date packages compiled from the latest version
> of its port for the latest stable release of FreeBSD.

Your terminology is  confusing packages and ports.  Packages are
pre-compiled binaries, while ports are (usually but not always) source
distributions that are compiled on your system.  For most ports, you
can install the corresponding package rather than the port if that's
what you wish to do.  There are several methods of doing so, the most
basic method is to use the pkg_add command.  See
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html
for more details and for instructions.  When you get to the page about
installing a package (4.4.1) note the comment about the PACKAGESITE
variable: if you install a FreeBSD RELEASE, then by default
PACKAGESITE is set to install the packages that were built at the time
of the RELEASE.  If you want more recent packages, you either need to
update your RELEASE version of FreeBSD to a corresponding (more
recent) STABLE version, or you need to change the PACKAGESITE variable
to fetch the STABLE packages rather than the RELEASE packages.  It is
done this way so that packages installed in a RELEASE will be
reasonably sure to work properly.  When you install newer packages
into an older system, sometimes the older libraries on the system
don't work correctly with the newer package (or other things don't
work right).  If you use a tool such as portupgrade to manage your
packages, it can automatically update required libraries, etc. so this
is usually not a problem.  Portupgrade itself is in the ports system,
and can itself be installed as a package if you wish.  Another similar
tool is portmanager.

Also, "stable" and "release" should not be used together to describe a
FreeBSD version.  "STABLE" describes the latest version of the
production FreeBSD system, and is updated pretty much continuously.  A
"RELEASE" is a snapshot of the "STABLE" version on a particular date. 
The RELEASE version gets extra testing and is distributed as a
complete distribution on CDROMs, ISO images, etc.  So the correct
terminology is to call a version of FreeBSD either STABLE or RELEASE,
but not both (it could also be CURRENT, which essentially means it is
an experimental version).

> Perhaps you can set up a system to automatically
> rebuild a binary package from its port when that
> specific port as been upgraded to a new version and
> put it up on the FTP sites. This would only require a
> particular package to have to be rebuilt when its port
> has been updated to a new version. This would save a
> lot of people a lot of time. Please.

This is already done.  At one time, new packages were built from the
ports every day.  I think that the number of ports has gotten so great
that new packages are built every two days now, but that could be a
misunderstanding on my part.

> 
> Also, I have a question, if I binary upgrade FreeBSD,
> I can continue to use existing packages I have from
> the previous version, right? What if a package from a

Usually.

> previous version and a package from a current version
> of FreeBSD require the same dynamically linked library
> (such as the same version of GTK). Do both packages
> share the same dynamically linked library, or do the
> binaries from older versions and newer versions each
> require a different build of the same library? Can

They share the same library, if they both use the same version of the library.

> dynamic libraries from previous versions of FreeBSD be
> loaded into programs compiled for the latest version
> of freebsd, and vice versa? If not, how does FreeBSD
> handle this mess?

FreeBSD attempts to keep track of the version of each library, so you
can have more than one version of a library installed, and different
programs can use different versions of the library.

Hope that helps.

- Bob


More information about the freebsd-questions mailing list