Massive portupgrade without being interrupted by configuration screens?

Doug Poland doug at polands.org
Sat Oct 2 15:23:30 UTC 2010


On Oct 2, 2010, at 9:49, Brandon Gooch <jamesbrandongooch at gmail.com> wrote:

> On Sat, Oct 2, 2010 at 5:27 AM, Thomas Mueller
> <mueller6727 at bellsouth.net> wrote:
>> How can one do a massive portupgrade, as with -r or -R, without being interrupted by options configuration screens for many individual ports?  Idea is to let it run unattended such as when I might run it starting just before bedtime.  Doing "make config" ahead of time also gives the chance to recover from a typo at the configuration screen (high risk).
>> 
>> Best thing I can think of is, using multimedia/ffmpeg as an example, is doing a dry run
>> 
>> portupgrade -Rn multimedia/ffmpeg |& tee -a wouldbe.log
>> 
>> This would show what other packages would need to be portupgraded and avoid reconfiguring up-to-date dependencies.  Then I would go to each of those directories in the ports tree and run "make config".
>> 
>> Running "make config-recursive" in /usr/ports/multimedia/ffmpeg would produce configuration screens for all dependencies, including those that are up-to-date.
>> 
>> I tried
>> 
>> portupgrade -RCn multimedia/ffmpeg |& tee -a wouldbe.log
>> 
>> but then I got all dependency configuration screens, including those that were up-to-date, and also the interface didn't work right: I got garbage when trying to respond; it didn't write to the configuration screen but produced non-color garbage to the background.
>> 
>> Running "make config-recursive" in /usr/ports/multimedia/ffmpeg would configure all dependencies, including those that are up-to-date and therefore not in need of portupgrading, though "make config-recursive" seems appropriate for a first build/install of a port.
>> 
>> But I think there is no perfect way to be sure of doing all "make config"s in advance, since selectable options could require additional dependencies.
>> 
>> If you try to portupgrade perl to 5.12 and everything that depends on it, as advised in UPDATING file, date 20100715, you will likely get a lot of configuration dialog screens: I speak from experience, would surely like a way to do all these "make config"s at the beginning.
>> 
>> Tom
> 
> Well, I'm not using portupgrade, but instead ports-mgmt/portmaster:
> 
> # portmaster --force-config --no-confirm [...] lang/perl5.12
> 
> Gets all of the config menus out of the way (--force-config), and
> doesn't sit waiting for confirmation to proceed with install
> (--no-confirm). I do this only the first time I build a port, or if I
> need to change a config option and reinstall.
> 
> Works for me!
> 
> -Brandon

If I understand the OPs question correctly, I believe setting the environment variable BATCH=yes will give desired results with portupgrade.  This will cause port compile defaults to be used in lieu of an existing /var/db/ports/*/options file. 


More information about the freebsd-questions mailing list