Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 May 2000 14:39:29 -0700 (PDT)
From:      "Eric J. Schwertfeger" <ejs@bfd.com>
To:        Vernon Buck Jr <vbuck@usa.net>
Cc:        questions@FreeBSD.ORG
Subject:   Re: Newbie question about Packages, & Ports
Message-ID:  <Pine.BSF.4.10.10005311422030.73617-100000@harlie.bfd.com>
In-Reply-To: <20000531211951.29891.qmail@nwcst278.netaddress.usa.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 31 May 2000, Vernon Buck Jr wrote:

> What's the difference between a package, and a port which is better?

port first:  A port is a Makefile and set of supporting files that tells
the machine where to fetch the source code from and how to install the
source.  As such, a port is usually very small, but requires that the
source to be downloaded seperately.  

A package is the end results of the port (a "make package" command in the 
port directory will generate the package). No compiling is necessary, you
usually just install the package and use it.  Packages seldom come with
source.

Packages have the advantage that there is only one download, and don't
need to be compiled, which is an advantage on slower machines.

Ports have the advantage that they are smaller, so you can easily download
all the ports quickly, whereas downloading the packages might take much
more work.  There is also software that can't be precompiled for you due
to licensing restrictions, so a package would be impossible.  They also
have the advantage that if you are just a little bit of a programmer, you
can modify the options of the software, update the port to a more recent
version, even if the port maintainer hasn't updated yet, etc.

Personally, I use ports almost every time, because I like seeing what
knobs the software has.  For example, the OpenSSL port/package comes in
two varieties, one for US residents that uses RSAREF, one for non-US
residents that gets RSA from OpenSSL itself.  Well, in a commercial
environment within the US, there are times that neither of these is
acceptable, so I make a minor (1 line in the make file, removed a line
from the PLIST file) change to the port that created a version of OpenSSL
that didn't have RSA at all, and then made a package of that.  While
OpenSSL quite easily allows for that, the distributed port/package didn't
have that as an option.

Similarly, many ports of utilities are set up to use all the features of
the software, pulling in tcl or python, when those enable features I'm not
interested in.  You can't modify the package to not pull that stuff in,
since it's pre-compiled, but you can modify the port to do so.

On the other hand, I can definitely see where someone that isn't familiar
with makefiles and tracking down compile problems might prefer packages
over ports.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.10005311422030.73617-100000>