what is the best way to remove a program?

2009-06-14 Thread Mark Hartkemeyer
I was installing the mysql51-server port and I had a message that the
install could not proceed, because mysql50-client was already
installed.  I simply ran a cd and then a make deinstall in the
mysql50-client directory.  Is this is the best way to remove a
program?  Does it depend on how the program was added (compiled versus
prebuilt binary added with pkg_add -r)?  I've tried pkg_delete in the
past, but it seems to always complain about dependencies and not
actually remove the program.

Thanks,
Mark Hartkemeyer
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: what is the best way to remove a program?

2009-06-14 Thread Pieter de Goeje
On Sunday 14 June 2009 14:58:46 Mark Hartkemeyer wrote:
 I was installing the mysql51-server port and I had a message that the
 install could not proceed, because mysql50-client was already
 installed.  I simply ran a cd and then a make deinstall in the
 mysql50-client directory.  Is this is the best way to remove a
 program?  Does it depend on how the program was added (compiled versus
 prebuilt binary added with pkg_add -r)?  I've tried pkg_delete in the
 past, but it seems to always complain about dependencies and not
 actually remove the program.

 Thanks,
 Mark Hartkemeyer

make deinstall is a good way to remove a program, but it ignores 
dependencies as you discovered. Some other program on your system requires 
mysql50-client to function and might now be broken.
pkg_delete -f does basically the same. pkg_deinstall (which comes with 
portupgrade) also does the trick.

Before doing a make deinstall you can check which installed packages require 
it by:
pkg_info -Rx mysql-client

If you want to upgrade mysql-client from 5.0 to 5.1, use portupgrade:
portupgrade -rf -o databases/mysql51-client mysql-client

This will replace mysql50-client with mysql51-client and reinstall all ports 
depending on mysql50-client (-rf), so they will use the new version. In this 
case the last step probably isn't necessary because the libraries are (mostly 
I think) compatible, but in general it is recommended.

For more information, see man ports and man portupgrade.

-- 
Pieter de Goeje
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: what is the best way to remove a program?

2009-06-14 Thread Manolis Kiagias
Pieter de Goeje wrote:
 On Sunday 14 June 2009 14:58:46 Mark Hartkemeyer wrote:
   
 I was installing the mysql51-server port and I had a message that the
 install could not proceed, because mysql50-client was already
 installed.  I simply ran a cd and then a make deinstall in the
 mysql50-client directory.  Is this is the best way to remove a
 program?  Does it depend on how the program was added (compiled versus
 prebuilt binary added with pkg_add -r)?  I've tried pkg_delete in the
 past, but it seems to always complain about dependencies and not
 actually remove the program.

 Thanks,
 Mark Hartkemeyer
 

 make deinstall is a good way to remove a program, but it ignores 
 dependencies as you discovered. Some other program on your system requires 
 mysql50-client to function and might now be broken.
 pkg_delete -f does basically the same. pkg_deinstall (which comes with 
 portupgrade) also does the trick.

 Before doing a make deinstall you can check which installed packages 
 require 
 it by:
 pkg_info -Rx mysql-client

 If you want to upgrade mysql-client from 5.0 to 5.1, use portupgrade:
 portupgrade -rf -o databases/mysql51-client mysql-client

 This will replace mysql50-client with mysql51-client and reinstall all ports 
 depending on mysql50-client (-rf), so they will use the new version. In 
 this 
 case the last step probably isn't necessary because the libraries are (mostly 
 I think) compatible, but in general it is recommended.

 For more information, see man ports and man portupgrade.

   

For an easy interactive program that takes care of dependencies, I would
suggest ports-mgmt/pkg_rmleaves
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: what is the best way to remove a program?

2009-06-14 Thread Matthew Seaman

Pieter de Goeje wrote:

This will replace mysql50-client with mysql51-client and reinstall all ports 
depending on mysql50-client (-rf), so they will use the new version. In this 
case the last step probably isn't necessary because the libraries are (mostly 
I think) compatible, but in general it is recommended.


Rebuilding all dependents when upgrading from mysql50 to mysql51 is absolutely
required.  mysql50-client installs ${LOCALBASE}/lib/mysql/libmysqlclient.so.15
whereas mysql51-client installs ${LOCALBASE}/lib/mysql/libmysqlclient.so.16
-- note the changed ABI version number.  Unless you use portupgrade(1) 
or save a copy of the old shlib by other means, anything that linked against

libmysqlclient would be rendered inoperable by the change, and must at least be
re-linked.  Yes, the APIs have not changed, but APIs are a matter for 
programmers
at the time of writing the source code -- once compiled, it's the ABI that 
counts.

Cheers,

Matthew

--
Dr Matthew J Seaman MA, D.Phil.   7 Priory Courtyard
 Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate
 Kent, CT11 9PW



signature.asc
Description: OpenPGP digital signature


Re: what is the best way to remove a program?

2009-06-14 Thread Ott Köstner

Mark Hartkemeyer wrote:

I was installing the mysql51-server port and I had a message that the
install could not proceed, because mysql50-client was already
installed.  I simply ran a cd and then a make deinstall in the
mysql50-client directory.  Is this is the best way to remove a
program?  Does it depend on how the program was added (compiled versus
prebuilt binary added with pkg_add -r)?  I've tried pkg_delete in the
past, but it seems to always complain about dependencies and not
actually remove the program.
  

In this case, pkg_delete should do the work for you.

with best regards,
Ott



___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org