Am I missing something, or will "port upgrade outdated" solve this? I don't show old versions of upgraded ports... -- Jay David Blank-Edelman wrote:
Hi-
Pardon me if this is an obvious question, but I'd like to know if there is an easy way (e.g. a script) to keep a maximally clean tree of active ports? I'd ideally like to have only the latest and greatest of every port I use installed on my machine. As new versions of ports (libraries in particular) get released, it seems like one starts to collect old versions of these ports because something else previously installed linked against that old version.
For example, right now my "ports outdated" says:
apr 1.2.11_0 < 1.2.12_0 apr-util 1.2.10_0 < 1.2.12_0 cairo 1.4.10_0 < 1.4.12_0 freetype 2.3.5_0 < 2.3.5_1 glib2 2.14.3_0 < 2.14.4_1 gtk2 2.12.1_0 < 2.12.3_0 sqlite3 3.5.2_0 < 3.5.3_1
I'm familiar with the -u switch to ports, but just to continue this example, I can't say "port -u upgrade cairo" because it says:
---> Unable to uninstall freetype 2.3.5_0, the following ports depend on it: ---> fontconfig ---> cairo ---> Xft2 ---> gtk2 Error: Uninstall freetype 2.3.5_0 failed: Please uninstall the ports that depend on freetype first. ---> Unable to uninstall cairo 1.4.10_0, the following ports depend on it: ---> pango ---> gtk2 Error: Uninstall cairo 1.4.10_0 failed: Please uninstall the ports that depend on cairo first.
As far as I know, the only way to keep only the latest version of cairo is to uninstall all of the stuff that depends on the past version(s) of cairo, upgrade cairo, and then rebuild/reinstall all of those ports. For certain ports there are enough steps in the chain (e.g. wireshark) that this becomes a bit of a hassle.
So my questions are: 1) Am I missing some incantation with port that will chase these dependencies for me? 2) If not, it seems like it should be possible to write a script that figures out the right uninstall/build/install dance in the shortest number of moves to leave a ports tree with only the very latest things installed. Anybody have one? 3) Another possibility would be to write something that kept a list of installed ports, blew away the current port installation, and installed that list again from scratch. This seems a bit heavy handed, but it would work.
Thanks for any help you can offer (and my sincere thanks to the people on the project plus the ports maintainers for all of the hard work that they do).
-- dNb _______________________________________________ macports-users mailing list macports-users@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo/macports-users