Ports upgrade script

Michael Powell nightrecon at hotmail.com
Sat Apr 16 16:30:11 UTC 2016


JosC wrote:

> 
> 
> In een bericht van 16-4-2016 12:18:
>>
>> Portsnap isn't compatible with svn.
>>
> So I think I should revise the way I update my ports.
> What I did with my 9.3 BSD was the following script (which worked
> perfectly):
> 
> !/bin/sh
> cd /local/user/etc
> svn update /usr/src
> svn update /usr/ports
> #
> cd /usr/ports
> make fetchindex
> portsdb -fu
> #
> #
> cd /usr/local/etc
> portupgrade -na
> #
> 
> So this part I replaced now with:
> 
> portsnap fetch update
> 
> kind of lost how to continue now...

I use svn to pull and/or update /usr/src/. I use portsnap to manage 
/usr/ports and the old portupgrade for updates. This is what I do:

portsnap fetch update && portsdb -u && portversion | grep \<

If the indexes or dbases have been damaged it may just be easier to wipe 
everything under /usr/ports/ and pull a fresh tree, as per: 

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html

Procedure 4.1, so as to start over. From then the portsnap fetch update as 
above to keep it updated. As far as binary management utilizing pkg or 
freebsd-update I don't know anything about these, as I've never used either 
one, so I have no clue how these would interrelate. I've also never used 
portmaster either, but I suspect it is not a good idea to mix and match; 
(use one *or* the other).

I have seen instructions on how to repair damaged databases, just have never 
had to do it but I know it is possible.

I know under the /usr/src is a directory .svn. I've compared experience with 
someone who uses svn-lite and he says the following has never been necessary 
in his experience (but I've always had to do this):

cd /usr/src and then chflags -R noschg .svn in order for rm -rf the .svn 
folder to work without 'Operation not Permitted' error. This .svn directory 
is for svn internal housekeeping. You might want to look under /usr/ports/ 
and see if you have one there, and remove it as unneeded.

Since I've never used svn to pull my ports tree I have no idea if there is 
supposed to be a /usr/ports/.svn, or not. I also seem to recall something 
about the svn vs portsnap incompatibility being mentioned somewhere wrt to 
changes between 9.x to 10.x, but for the life of me can't recall where.

Also not recently the default version of Ruby (upon which portupgrade 
depends) has changed. There is an /usr/ports/UPDATING entry on this. IIRC it 
is the ruby22-bdb5-0.6.6_4 that portupgrade uses for managing its database.

-Mike





More information about the freebsd-questions mailing list