Trouble Upgrading Ports

Jeremy Messenger mezz7 at cox.net
Sat Feb 25 09:48:40 PST 2006


On Sat, 25 Feb 2006 11:41:59 -0600, Spadge <spadge at fromley.net> wrote:

> Eric Schuele wrote:
>> Jeff Cross wrote:
>>
>>> I have been upgrading my ports using portupgrade -varR but have run
>>> across a few that are giving me fits.
>>>
>>> When trying to update scrollkeeper I get the following:
>>>
>>> You must have XML::Parser installed to run ../../intltool-merge
>>>
>>  I ran into this.  I did a `make deinstall` and `make reinstall` on  
>> p5-XML-Parser.  it did the trick.
>>  But Now I have other problems see "Trouble building gnomeprint".  I do  
>> not know if they are related in any way.
>
> I found that with the recent update of perl5, an awful lot of perl5's  
> little wizards are failing to portupgrade as the system tries to install  
> them as dependancies even though (or because) they are already installed.

Did you read in the /usr/ports/UPDATING?

> I once wrote a shell script to combat this sort of behaviour, as it is  
> something I have run up against time and time again with the perl5 port.  
> It looks something like this (I fully expect my email to kill the  
> formatting of this, with like linewrap and everything, so beware):

We have a tool for that, an answer is in the /usr/ports/UPDATING.

Cheers,
Mezz

> ~
> #!/usr/local/bin/bash
>
> # IMPORTANT!!!!1 - requires 'where' script ... see end of file.
> # Also depends on portinstall.
>
> PERLIST="/usr/home/spadge/perl.list" # file to hold the names of your  
> installed perl5 crap
> PERLDEL=`where perl-5.8 | awk '{print $1}'`
> PERLINST=`where perl-5.8 | awk '{print $4}'`
> # If you use a different version of perl, you'll want to change the above
> # PERLDEL and PERLINST lines to match it.
>
>
> touch $PERLIST
>
> pkgdb -Fu
>
> pkgdb -Fu
>
> # ok, this is the line that populates $PERLIST
> for i in `(pkg_info -R perl-5\* |tail +4; find  
> /usr/local/lib/perl5/site_perl/5.[68].[1245] -type f -print0 | xargs -0  
> pkg_which -fv | sed -e '/: ?/d' -e 's/.*: //')|sort -u`; do where $i >>  
> $PERLIST; done
>
> # from here on the actual (un)installing is done
> for i in `sort -u $PERLIST | awk '{print $1}'`; do pkg_delete -f $i; done
>
> pkg_delete -f $PERLDEL
>
> cd /usr/ports/$PERLINST; make install
>
> for i in `sort -u $PERLIST | awk '{print $4}'`; do portinstall $i; done
> #and that's it.
>
> echo "perl (and all it's little wizards) has been updated."
> echo "Before running this script again, either:"
> echo "a) delete " $PERLIST ", or"
> echo "b) comment out the line that populates it"
>
> ################################################################################
> #         #
> # As mentioned earlier, you need to have 'where' on your path.         #
> #         #
> # Get it from http://www.ramblingwaffles.net/where or create an  
> executable     #
> # file called 'where' on your path, and paste the following into it:  
>         #
> #         #
> # #! /usr/local/bin/bash         #
> # for i in `ls /var/db/pkg | grep $1`; do echo $i "is in" `pkgdb -o $i`;  
> done  #
> #         #
> ################################################################################
> #
> # That's all folks. Written by spadge at fromley.net
> # thanks to the perl port maintainer for the horrible xargs.
> ~
>
> As to the bash3 upgrade problem, I found that getting the  
> bash-3.1.tar.gz source and bash31-010 patch from  
> http://ftp.wayne.edu/pub/gnu/bash/ and manually putting them in  
> /path/to/ports/distfiles/bash/ fixed it for me.


-- 
mezz7 at cox.net  -  mezz at FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/  -  gnome at FreeBSD.org


More information about the freebsd-ports mailing list