On May 8, 2014, at 10:39 PM, Joshua Root <[email protected]> wrote: > Jerry wrote: >> I am considering using the "Automatically reinstall ports" suggestion >> whereby a script is downloaded which script then works with a previously >> saved myports.txt. If I do this, will the script install old versions of >> ports which had not been active? I'm thinking that this might be a good time >> to do some decrufting and I would like to consider these old inactive >> versions as mostly cruft and not reinstall them. > > As Ryan said, it can only install the current version of each port. But > if you have a port installed with different variants, it will reproduce > that. E.g. if you start with this: > > foo @1.0_0 > foo @1.0_0+bar (active) > foo @1.1_0 > > then if 1.1 is the current version of foo, after running restore_ports > you will have: > > foo @1.1_0+bar (active) > foo @1.1_0 > > After you generate myports.txt, it's worthwhile to glance through it and > delete any lines you don't want any more, as well as to adjust some of > the variants if desired, as Brandon suggested.
Thanks for all the help, everyone! I think I'm going to install manually, at least at first, and see how that goes. The problem with combing through myports.txt to figure out what I don't need any more is that most of the stuff there I don't recognize, being dependents of things I do recognize. > > Brandon Allbery wrote: >> On Thu, May 8, 2014 at 6:26 PM, Jerry <lanceboyle at qwest.net> wrote: >> >>> I redirected this output to .txt files. Do you have a quick way (script) >>> to use these echoed files during reinstallation? >> >> >> I don't need to do it often enough to script it, I generally build it on >> the fly :) >> >> port echo active and requested | perl -lpe 's/[ \t]+\@[^-+]+/ /; >> s/^/port install /' >> >> Output is something you can feed to /bin/sh, via sudo; you may want to >> check it for sanity and possibly add/remove some things manually. One thing >> it doesn't deal with is possible changes in default variants, because it's >> difficult to script. For example, the default perl5 variant has changed >> from +perl5_12 to +perl5_16 within the past several months --- you may want >> to take the chance to upgrade stuff to the new default rather than >> propagating the old. It also doesn't try to deal with dependencies, so >> there is some chance that a dependency of something earlier in the list >> will install with default variants something later in the list with an >> explicit variant; there's no good way to deal with this in MacPorts >> currently, especially when variants can alter dependencies (and I'm not >> sure that a "good way to deal with this" even exists). > > Handling variants of dependencies correctly is precisely why > restore_ports.tcl exists. The lack of automatic preservation of the > requested flag is an annoyance, certainly, but you can get around it by > running this at the same time you generate myports.txt: > > port echo requested | cut -d ' ' -f 1 > requested.txt > > and this after you've run restore_ports.tcl and 'port unsetrequested > installed': > > < requested.txt xargs port setrequested Maybe the downloadable script from https://trac.macports.org/wiki/Migration could be improved with these ideas. Jerry > > - Josh _______________________________________________ macports-users mailing list [email protected] https://lists.macosforge.org/mailman/listinfo/macports-users
