after 10.0 -> 10.1 rebuild: how to force pkg reinstall ?

Matthew Seaman matthew at FreeBSD.org
Sun Nov 16 09:30:53 UTC 2014


On 16/11/2014 08:25, Kurt Jaeger wrote:
> Now that 10.1 is released, I re-built all the ports relevant to me via
> 
> poudriere bulk -f ~/pkg/all -j 10x
> 
> and then had a nice new repo to pkg update.
> 
> But: If I upgrade a 10.0 box to 10.1 and then ask them to use the
> new repo, how can I enforce a complete reinstall of all packages
> built on 10.1 instead of having a mix of old and new pkgs ?

For a 10.0 to 10.1 upgrade, reinstalling everything is not generally
required.  However I assume you have your own reasons to want to do so.

You can force a re-install of all installed packages by:

	 # pkg upgrade -f

If you want to selectively update just the packages installed from a
particular repo, or installed before a specific date, there isn't a
handy built-in way to do that.  You'll have to generate a list of
appropriate packages and feed it to pkg install -f using xargs(1) -- eg.

  # pkg query "%n-%v %An %Av" | grep "repository $reponame" \
	| cut -d' ' -f 1 | xargs pkg install -f

  # date=$( date -j -f "%Y-%m-%d %H:%M:%S" "2014-10-16 00:00:00" +%s )
  # pkg query "%n-%v %t" | awk "{ if (\$2 < $date ) print \$1; }" \
	| xargs pkg install -f

The business with 'date -j -f ...' is to convert a  date specified in
the usual way (year, month, day, hour, minutes, seconds) into the unix
epoch time, which can then be compared as an integer to the timestamp
pkg(8) produces.

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.
PGP: http://www.infracaninophile.co.uk/pgpkey


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 971 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20141116/fbb35a9b/attachment.sig>


More information about the freebsd-ports mailing list