From owner-freebsd-stable@FreeBSD.ORG Tue Jan 27 21:38:57 2015 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2BFD15C6 for ; Tue, 27 Jan 2015 21:38:57 +0000 (UTC) Received: from hergotha.csail.mit.edu (wollman-1-pt.tunnel.tserv4.nyc4.ipv6.he.net [IPv6:2001:470:1f06:ccb::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C38B9E3C for ; Tue, 27 Jan 2015 21:38:56 +0000 (UTC) Received: from hergotha.csail.mit.edu (localhost [127.0.0.1]) by hergotha.csail.mit.edu (8.14.9/8.14.9) with ESMTP id t0RLcsZw023514; Tue, 27 Jan 2015 16:38:54 -0500 (EST) (envelope-from wollman@hergotha.csail.mit.edu) Received: (from wollman@localhost) by hergotha.csail.mit.edu (8.14.9/8.14.4/Submit) id t0RLcrY7023513; Tue, 27 Jan 2015 16:38:53 -0500 (EST) (envelope-from wollman) Date: Tue, 27 Jan 2015 16:38:53 -0500 (EST) From: Garrett Wollman Message-Id: <201501272138.t0RLcrY7023513@hergotha.csail.mit.edu> To: vmagerya@gmail.com Subject: Re: Recursively Deinstalling and Upgrading Packages/Ports without Breaking Dependencies? References: <54C6CDB5.2040501@gmail.com> <54C76267.8040300@gmail.com> Organization: none X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (hergotha.csail.mit.edu [127.0.0.1]); Tue, 27 Jan 2015 16:38:54 -0500 (EST) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on hergotha.csail.mit.edu Cc: freebsd-stable@freebsd.org X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Jan 2015 21:38:57 -0000 In article <54C76267.8040300@gmail.com>, vmagerya@gmail.com writes: >I think ports-mgmt/portmaster has no problems with installing >new dependencies; "portmaster -a" will upgrade all the installed >ports. I'm not really familiar enough with portupgrade to say >if the exact behavior of it's "-Rr" switch can be replicated >with portmaster though. If you have anything close to sufficient resources -- and disks are big, so you probably do -- I cannot overemphasize the value in just running poudriere to build your own package repo. Figure out which top-level pacakges you care about, save the list in a file, and just run "poudriere options" and "poudriere bulk" against that file every time you update. It's good (well, a bit aggressive) at figuring out what things need to be rebuilt, and it doesn't take that long if your package set isn't too huge. When it's done, you get a report that identifies any failures, so you don't end up with a partial upgrade that breaks something critical. Then a standard "pkg upgrade" will apply the updates to a running system. This is vastly, vastly easier and better than trying to do incremental upgrades from source. (You still can do incremental upgrades this way, if you're careful about how you update your ports tree. I've done that occasionally to roll security fixes into my production package set without pulling in all of the other ports updates in the month since I last built packages.) The break-even point in terms of effort is somewhere around 1+epsilon machines to update; it was a no-brainer for me with just three personal machines (two workstations and a server) to update. The only drawback is that you need one package set per ABI, so if you have multiple machines with different ABIs (say, 9.3/amd64 and 10.1/i386) the arithmetic changes a little bit, and the package builder has to have a new enough kernel to host jails for every ABI you want to build for, which in practice means that you have to run the most recent release on the build server. -GAWollman