On 11/03/2006 18:39, Chris Whitehouse wrote:
Eric Schuele wrote:
On 11/02/2006 09:25, Robert Huff wrote:
Eric Schuele writes:

 How can I force a reinstall of a port and all its deps.

    The port itself will handle anything "above".

Well, that's what I had thought would happen, but the port does not seem to re-register the dependencies. It simply notes that they are present, and builds and registers the port I have attempted to `make install`. So for example if I go to /usr/ports/www/firefox, and `make install` it. I only end up with firefox in my /var/db/pkg folder. None of its deps appear.

    As for things "below" ... you're pretty much hosed.  If the pkg
db (or equivalent) existed, it would know which ports had been
installed and could rebuild things.
    Without the pkg db, the only record of what _should_ be
installed is in your head.


Have you tried sysutils/portmanager?

 From the man page:
" Determines ports that are out of date by comparing them to Makefiles
     downloaded through cvsup into the ports tree"
So it looks like it doesn't require /var/db/pkg to work.

 "-p or --pristine
          Updates a port if any dependency in it's /var/db/pkg/{port
name}/+CONTENTS does not match what is installed. The effect is when a port is updated, any port who uses the updated port in it's depen- dency chain, no matter how deep, are rebuilt. Normally only ports one
         level up are rebuilt."

This looks like it rebuilds /var/db/pkg

You also probably need -f if your ports are up-to-date

Aha!
Example from the man page:
 rebuild  all installed ports

          portmanager -u -f

This might be my silver bullet. Its been running for quite some time but it appears to be rebuilding everything and its full set of dependencies. Thanks!

I've never used portmanager before.  Always portupgrade.  Nice.

I was having all sorts of difficulties using `pkgdb -F`. possibly something else gone wrong on my machine. It was complaining of DB_PAGE_NOTFOUND? and complaining that it could not convert nil to String? Never seen it do that before.

Thanks!


I haven't tried it in these particular circumstances and I'm not sure if I've read the man page right but it's worth a try, it's a pretty clever utility.

Note if you try it on a single port you have to put the options after the port name, see the EXAMPLES section. Also see my recent question about portmanager and /tmp if you are rebuilding lots of ports in one session.

Chris














Yes.. this is now painfully obvious to me. I guess in some way I had thought the pkg db, was simply a convenience. But I now realize it is *the authority* on what is installed on your machine. While I do plan to back it up from now on... I have added the two small scripts to my toolbox as well.

I alias the following as port_install
#!/bin/sh

#
# Used to create a log file of things I have installed on a machine
#

make install clean && \
    printf "`pwd`\t\t\t`date`\n" >> /root/maint/install/port_install.log

and the following as port_deinstall (mind the word-wrap).

#!/bin/sh

#
# Used to create a log file of things I have installed on a machine
#

SCRIPT_DIR=/root/maint/install

grep -v `pwd` $SCRIPT_DIR/port_install.log > $SCRIPT_DIR/port_deinstall.log
rm $SCRIPT_DIR/port_install.log
mv $SCRIPT_DIR/port_deinstall.log $SCRIPT_DIR/port_install.log

make deinstall


Then I have a list of top level apps that *I* have installed. I am using the above today, as I am reinstalling all top level apps. :)

On the other hand, if you remeber
certain leaf ports installing them will drag in most of the
infrastructure.  (My candidates: OpenOffice, Firefox, Apache,
something involving Java. GIMP.)  It will still take time, but
within limits you can just let it run.

    A scenario for the future: my /var/db/pkg has ~620 entries, and
totals just over 62mb.  Building a tarball took less than a minute
and ate another 60mb.  Might be a sound investment.


yeah... I have already added /var/db/pkg to my backup scripts. I backup a bunch of system stuff every time I buildworld. I just wasn't getting that.

Thanks.

                Robert Huff
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"





_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"



--
Regards,
Eric
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to