Using Portupgrade?

Jeremy Chadwick koitsu at
Mon Aug 4 02:26:19 UTC 2008

On Sun, Aug 03, 2008 at 09:20:08PM -0400, Nic Reveles wrote:
> I've recently updated to freeBSD 6.3-STABLE from 5.3-RELEASE (amd64) and am struggling with out of date ports. I have tried updating 'ports-all' and 'src-all' numerous times (does src-all include ports-all? It takes forever) along with portupgrade.

src-all does not include ports-all.

"It takes forever" is wonderfully vague.  :-)  Chances are the cvsup
server you're using is slow (usually caused by heavy disk I/O, not so
much network I/O); pick another.  Try them all, find one which is fast.
I'd recommend a couple I commonly use, but then everyone will start
using them....... :-)

> For example, when trying to login to an account using the bash shell I got the following error that prevents logging in.
> Shared object "" not found 

This indicates bash is linked to a library that doesn't exist on your
machine.  On my RELENG_6 machine, there is no -- there's a (significantly newer).

> So I tried: portupgrade -r bash, which did not fix anything. I was able to fix it by going into the ports directory and 'make deinstall' then 'make install'. But there are many other ports that are still broken. Is there an easy way to fix them all at once (using portupgrade)?

The method I use for upgrading our systems is often shunned by other
administrators because "it requires too much work", but it *always*
works without any hitches.

1) Back up /usr/local.  rsync -av /usr/local/ /usr/local.old/ works.
2) Save output from pkg_info somewhere (e.g. in a Notepad window, etc.)
3) pkg_delete -a -f
4) rm -fr /usr/local
5) rm -fr /var/db/pkg/*
6) rm -fr /var/db/ports (this probably isn't necessary, but why not)
7) Start installing all of your ports again

If you have X on your machine, this method will very likely not make you
happy, as I've heard people with X often have 300+ ports installed.

I can't help you with X, as I don't use it.

> 2) I rebuilt 'INDEX'
> # cd /usr/ports && make index

Waste of time.  cd /usr/ports && make fetchindex

> So I feel confident that I'm doing something incorrect since nothing seems to work after updating (or fails while updating). Could someone point me in the right direction?

I'd start by ceasing use of portupgrade.  Try Doug Barton's portmaster,
which is in ports/ports-mgmt/portmaster.  It's an extensive shell
script, and does not require ruby.  It might actually upgrade all of
your ports for you, although your system may be in a state of disarray
as a result of upgrading major OS versions.

| Jeremy Chadwick                                jdc at |
| Parodius Networking              |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

More information about the freebsd-stable mailing list