Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Sep 2013 21:39:11 +0200
From:      olli hauer <ohauer@gmx.de>
To:        freebsd-ports@freebsd.org
Cc:        mexas@bris.ac.uk
Subject:   Re: UPDATING 20130904 entry issues
Message-ID:  <5230C6DF.7010108@gmx.de>
In-Reply-To: <201309111432.r8BEWe0Z001742@mech-cluster241.men.bris.ac.uk>
References:  <201309111432.r8BEWe0Z001742@mech-cluster241.men.bris.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-09-11 16:32, Anton Shterenlikht wrote:
> ports/UPDATING from 20130904 has:
> 
>   # pkg query %ro libiconv >ports_to_update
>   # pkg delete -f libiconv
>   # cat ports_to_update | xargs portmaster
> 
> So I have to delete a port on which >250 other
> installed ports depend. After that I have *many*
> unusable ports until the portmaster completes
> the rebuilding, which, on my boxes, means days.
> 
> In addition, my experience, at least on ia64, sparc64
> and amd64 is that such large updates never go smoothly.
> 
> So, is it possible to reverse the procedure, and
> update all ports which depend on libiconv before
> deleting it? I'm thinking about the recommended
> procedure for using "make delete-old-libs" for the
> base OS. There new port builds automatically pick
> the newever version of the shared lib. When the old
> version is no longer used by any ports it can be
> removed.
> 
> Is it not possible to tell ports to first check
> for libiconv in base, and if it is not there,
> then install/use one from ports?
> 
> Anton

If you run many ports it is maybe better to setup
ports-mgmt/tinderbox or ports-mgmt/poudriere(-devel)
and build everything in a clean environment.

Anyway if you haven't used tinderbox or poudriere before
use pkg to create packages from all your installed ports,
this takes only some minutes so you can revert in seconds.

# create pkg backup space
> mkdir -p $space/pkg_backup/All

# create packages from all installed ports (takes some minutes)
> pkg create -a -o $space/pkg_backup/All

# create
> pkg repo $space/pkg_backup

# create a list of installed ports that can be used later
# with ports-mgmt/tinderbox or ports-mgmt/poudriere(-devel)
> pkg query %o | sort | grep -v libiconv > $space/pkg_backup/packagelist


In the HOWTO section from forums.freebsd.org you can find an article
how to setup poudriere in less then 30min.
Once you have such a tool you will never go back to portmaster since
you can build all packages over night and update your systems by
just typing "pkg upgrade"





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5230C6DF.7010108>