Migration question and binary question
Jerry
lanceboyle at qwest.net
Fri May 9 00:22:44 PDT 2014
On May 8, 2014, at 10:39 PM, Joshua Root <jmr at macports.org> 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
More information about the macports-users
mailing list