Perspective on ports for non-experts
developer at grinz.com
Fri May 23 07:18:30 UTC 2008
I am a jack-of-all-trades, master of none sysadmin. There's a lot to love
about FreeBSD, but ports take the cake. The procedures below work 99% of
the time for virtually any software I need to run. I have never had a
problem I couldn't quickly fix. I actually had to use portdowngrade once,
and it worked!
My normal ports routine is:
% cd /usr/ports/
% portsnap fetch update
% portsdb -u
% portaudit -Fa
% pico UPDATING
% portversion -l '<' [OR] portversion -v |less
% portupgrade -vr postfix
% portupgrade -vr clamav
If I'm installing a new port:
% cd /usr/ports
% make search name=postfix
% cd mail/postfix
% make install clean
In my experience, if the instructions in the Handbook don't work, finding
the workaround often involves hunting and pecking across the Internet, as
well as learning new concepts and commands. I've never seen something like
"An Introduction to make". I only recently learned how to retrieve the
graphical configuration screen after an installation without
% make configure
Some of you will laugh, but some will know exactly what I'm talking about.
Where should I have learned that? Please don't send me to man! The one
thing I'm looking for in man pages is examples. I hardly ever find them.
## ## How to replace wrong binary packages with source packages
I'm ready to run X11/KDE. It seems like the perfect time to learn how to
use ports for binary packages, since X11/KDE are non-essential and will
take a couple of days to compile and install.
% pkg_add -r kde3
Error: FTP Unable to get
File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch
So I used:
% pkg_add -r
I think I should have used /packages-6-stable/.
Instead I ended up with binaries for 7 (I guess).
I don't understand the first thing about linking/dynamic compiling. All I
know is I couldn't upgrade any of these packages using portupgrade. Here's
% portupgrade -vr qt
/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libqt-mt.so, not
found (try using -rpath or -rpath-link)
I don't have a list of every binary package installed, but through a
process of elimination I eventually weed out all the bad binaries: %
pkg_deinstall -v qt
This is better than make deinstall because it quits if there is a
dependency rather than just reporting it.
Run the same command for each package depending on qt, then run it on qt
Keep running this command until it succeeds:
% cd /usr/ports/x11/kde3
% make configure
Use the warning messages to figure out which ports need to be removed.
Is there a better way to rectify this situation?
More information about the freebsd-questions