Kevin D. Kinsey, DaleCo, S.P. kdk at
Tue Dec 16 20:07:06 PST 2003

richard michael bagstad wrote:

> i find this frustrating.  on your website (page  
> using.html)
> the following tells me that 'from cd' and 'from internet'  are exactly 
> the same... 
> it does not tell me the directory of (ie.)  lsof.  it simply tells me 
> to 'make install'. 
> please help a poor green  newbie. 

I suppose I am sorry for your frustration.  I must
admit to having a bit of trouble discerning your
question, however.  Are you looking for "lsof_4.69.tar.gz"?

I'll try and give you my thoughts on the subject.

Let's use the ports system to install an imaginary
application, "fooapp".  I can use several methods to
determine a location for "fooapp".

        #whereis fooapp


        #cd /usr/ports
        #make search key=fooapp

        Port:   fooapp-0.0.1
        Path:   /usr/ports/misc/fooapp
        Info:   Has title bars, icons, taskbar, clock
        Maint:  mrfoo at
        Index:  misc
        B-deps: imake-4.3.0_1 perl-5.6.1_14 pkgconfig-0.15.0
        R-deps: imake-4.3.0_1 perl-5.6.1_14 pkgconfig-0.15.0

Now, what I need to realize is something that you seem
to be understanding from your previous reading.  The
directory /usr/ports/misc/fooapp *does not* contain the
source code for the program "fooapp".  And FreeBSD doesn't
*expect* it to.

The source code is continually being improved and updated,
and is held on various sites around the Internet.  If I happen
to have the source code for "fooapp" available (and it *must*
be the same revision number as the file /usr/ports/misc/fooapp/Makefile
was written for, I *must* copy that "source file" (generally
compressed into a "tarball") to the "distfiles" directory,
/usr/ports/distfiles.  The "tarball" for version 0.0-1 of
"fooapp" is likely named "fooapp0.0-1.tar.gz".  If I don't have
it available, the ports system will complain, then attempt to
fetch it from a distribution site on the Internet.

Now, if you have "fooapp0.0-1.tar.gz" on a CD, you should
copy that file to /usr/ports/distfiles, and then change to
/usr/ports/misc/fooapp and type "make install clean".

This should install the application by uncompression of
/usr/ports/distfiles/fooapp0.0-1.tar.gz, using the "Makefile"
to compile and install the application.  But, we haven't discussed
one other crucial thing.

In the output of the second command above, you see that
"fooapp" has both "b-deps" and "r-deps".  These are "dependencies",
the bane of many an installer.  In order to build "fooapp", you
must have imake-4.3.0_1 perl-5.6.1_14 and pkgconfig-0.15.0 installed
as well.  There's a good chance that each of these 3 programs has
it own set of dependencies as well.  You're gonna have to do a
lot of copying of distfiles, assuming you even have them on a CD.

If there's any good news, it's that this system is much better than
what a significant portion of the Linux community has had to deal
with in past years.

I don't think it's terrible that the FBSD release engineering
team expects that most users will have an internet connection
in order to handle the various "tarballs" that will need to be
fetched while installing various 3rd party applications.  FBSD
is made for the internet.  Since so much of the software is free,
there is little $ to be made by packaging the software on CD's,
as happens in the "Microsoft" world.  And the speed of development
is furious ... CD's are generally outdated by the time they are
printed and placed on the market, anyway.

Other things you may not know:

*Some CD sets do have "distfiles" on them ... hundreds of them.
IIRC, there are generally at least 5 or more CD's in that set.

*Distfiles for almost all apps in the "ports" tree are available
in the "distfiles" directory on the FTP site(s).


Kevin Kinsey
DaleCo, S.P.

More information about the freebsd-questions mailing list