Date: Tue, 27 Jan 2015 16:38:53 -0500 (EST) From: Garrett Wollman <wollman@hergotha.csail.mit.edu> To: vmagerya@gmail.com Cc: freebsd-stable@freebsd.org Subject: Re: Recursively Deinstalling and Upgrading Packages/Ports without Breaking Dependencies? Message-ID: <201501272138.t0RLcrY7023513@hergotha.csail.mit.edu> References: <54C6CDB5.2040501@gmail.com> <54C76267.8040300@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501272138.t0RLcrY7023513>