On Wed, Aug 18, 2004 at 08:24:21PM -0700, Henrik W Lund wrote:
> Curtis Vaughan wrote:
> 
> >Made a big mistake today.  I was reading in a book that I needed to 
> >install cvsup for doing updates.  Good.  So, I started installing it.  
> >Meanwhile I began perusing the FreeBSD website information about cvsup 
> >and there I read, if you not using a gui, then don't install cvsup, 
> >but cvsup-without-gui.  So, is there a way to back out the cvsup which 
> >I did do as it apparently has installed a lot of stuff I don't need on 
> >this server.
> >Or do I have to just uninstall all those packages individually?  Is 
> >there a way then to identify which packages were installed by 
> >installing cvsup?
> >
> >Curtis
> 
> Greetings!
> 
> I'd say your best bet is to install sysutils/portupgrade and use the 
> pkg_deinstall command with the -R flag. I.e.:
> 
> `pkg_deinstall -R cvsup'
> 
> If you absolutely do not want any more riffraff on your box, then you 
> must examine the output of
> 
> `pkg_info -r cvsup'
> 
> and pkg_delete each of the packages listed manually, then delete cvsup. 
> If pkg_delete fails on any one of the packages in the list, recurse 
> through its dependencies until it can be deleted, then proceed to the 
> next package in the list, etc... Just be careful when traversing the 
> dependencies. Sooner or later you might deinstall something you really 
> want to keep, so keep your eyes open. Not all packages that cvsup 
> depends on is required only by cvsup, and some of them were probably 
> already installed when you installed cvsup. Like I said, your best bet 
> is to go with the sysutils/portupgrade method.

This is generally sound advice, but unfortunately, and particularly in
the case of the cvsup ports, it pretty much misses the point.

cvsup depends on very few other ports, all of which are also commonly
dependencies of a large number of other ports:

    % pkg_info -r cvsup\*
    Information for cvsup-16.1h:
    
    Depends on:
    Dependency: pkgconfig-0.15.0_1
    Dependency: imake-6.7.0_2
    Dependency: freetype2-2.1.7_3
    Dependency: expat-1.95.8
    Dependency: fontconfig-2.2.3,1
    Dependency: xorg-libraries-6.7.0_1

In fact, almost all those dependencies are inherited indirectly
through the xorg-libraries port.  The cvsup-without-gui package
doesn't have *any* dependencies.  Chances are the 'pkg_deinstall -R'
method suggested will only remove the cvsup or cvsup-without-gui port.

Of course, what I've been looking at here are *run time dependencies*.
If you install cvsup from a pkg, that's all you have to bother with.
However, if you install cvsup from source code there's a whole other
swathe of dependencies that haven't yet been considered.  Those are
the *build time dependencies*.  In cvsup's case, those are quite
heavy: it's necessary to install a complete Modula3 compilation tool
chain:

    % cd /usr/ports/net/cvsup
    % make -V BUILD_DEPENDS
    /usr/local/lib/m3/pkg/formsvbt/FreeBSD4/libm3formsvbt.a:/usr/ports/lang/ezm3
The situation has improved over time, and all that's required nowadays
is the ezm3 port.  But that's a very large port, and it takes quite a
lot of effort to compile and install.

You don't need ezm3 for cvsup to work from day to day.  You do need it
anytime you want to compile an update to cvsup from source.  In
principal you can get round that by just using the pkg system to get
any updates, so long as you're willing to wait for a few weeks for the
updated packages to come out.  Personally I'd just leave ezm3 inplace
and compile cvsup updates from source.

As for whether the OP should install cvsup or cvsup-without-gui --
either will do just fine.  The advice to install the cvsup-without-gui
pkg seen in many places on the net is becuse it's a lot quicker to
install that dependency-less port than it is to install various X
libraries and other stuff.  Additionally I'd install cvsup-without-gui
if I was building a server machine *without* any X windows stuff on it
at all.  Otherwise, I'd just install the cvsup port.  Indeed, for a
brand-new install from scratch, I tend to install cvsup-without-gui
temporarily and then use it to pull down the latest system and ports
sources. After which that port will almost immediately be overwritten
with a freshly compiled copy of the cvsup port as part of the general
process of installing all of the extra ports I need.

        Cheers,

        Matthew


-- 
Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
                                                      Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey         Marlow
Tel: +44 1628 476614                                  Bucks., SL7 1TH UK

Attachment: pgpker12cwlXg.pgp
Description: PGP signature

Reply via email to