Baffled by output from `port dependents'
When I type: $> port dependents bzip2 I get the following: ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 Why all the repetitions? I only have one active copy of ImageMagick installed, and all inactive versions have been uninstalled: $> port installed | grep ImageMagick ImageMagick @6.3.2-9_0+darwin_8 (active) I can only assume that all these lines refer to previously installed, and since uninstalled, versions of ImageMagick. How does my system know about these previously uninstalled versions? I can't find any trace of the previously installed versions on my system. Is there some file somewhere that still keeps track of all the previous versions? Is there any way to update this file? Mark
On Mar 3, 2007, at 12:04, Mark Dickinson wrote:
When I type:
$> port dependents bzip2
I get the following:
ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2
Why all the repetitions? I only have one active copy of ImageMagick installed, and all inactive versions have been uninstalled:
$> port installed | grep ImageMagick ImageMagick @6.3.2-9_0+darwin_8 (active)
I can only assume that all these lines refer to previously installed, and since uninstalled, versions of ImageMagick. How does my system know about these previously uninstalled versions? I can't find any trace of the previously installed versions on my system. Is there some file somewhere that still keeps track of all the previous versions? Is there any way to update this file?
Interesting. I don't know what's going on. All I can say is that I too have had many versions of ImageMagick installed, and only one is now installed, and port dependents bzip2 only shows one line of output for me: $ port dependents bzip2 ImageMagick depends on bzip2 $ port installed ImageMagick The following ports are currently installed: ImageMagick @6.3.2-9_0+darwin_8 (active) Do you have the latest version of MacPorts? Try "sudo port selfupdate" to see if it updates your MacPorts.
Hi, Am 03.03.2007 um 19:04 schrieb Mark Dickinson:
$> port dependents bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2
Why all the repetitions? I only have one active copy of ImageMagick installed, and all inactive versions have been uninstalled:
Sure? Then, it should not hurt to type $> port uninstall inactive In case you dont get messages telling you that there are other ports depending on ImageMagick, you can go on and issue a "port installed" again and show us the result. Bye, Christian
On 3/6/07, Christian Voelker <C.Voelker@gmx.net> wrote:
Hi,
Am 03.03.2007 um 19:04 schrieb Mark Dickinson:
$> port dependents bzip2 ImageMagick depends on bzip2 ImageMagick depends on bzip2 ...
Why all the repetitions? I only have one active copy of ImageMagick installed, and all inactive versions have been uninstalled:
Sure? Then, it should not hurt to type $> port uninstall inactive
Thank you for your replies. Here's the result of `port uninstall inactive': fibonacci:~ dickinsm$ sudo port uninstall inactive Password: ---> Unable to uninstall mpfr 2.2.1_0+darwin_8, the following ports depend on it: ---> gcc41 ---> gcc40 ---> gcc40 ---> gcc41 ---> gcc41 Error: port uninstall failed: Please uninstall the ports that depend on mpfr first. and `port echo inactive' gives me only: mpfr @2.2.1_0+darwin_8 (the result of a recent upgrade). `port selfupdate' tells me that `DarwinPorts base version 1.320 installed' and `The MacPorts installation is not outdated and so was not updated'. And the system is OS X 10.4.8. MacPorts was installed in as standard a way as possible, as far as I know. I've been trying to understand the source to see where the `port dependents' command is getting its information from, but my understanding of Tcl is close to nonexistent. Do I understand correctly that the `port registry' is not a single file, but the collection of information coming from the files in subdirectories of /opt/local/var/db/dports/receipts? The feature isn't limited to ImageMagick and bzip2; for example: fibonacci:~ dickinsm$ port dependents readline ghc depends on readline gnuplot depends on readline darcs depends on readline py-readline depends on readline freeciv depends on readline gnuplot depends on readline hugs98 depends on readline ghc depends on readline ghc depends on readline darcs depends on readline ruby depends on readline ruby depends on readline ghc depends on readline bash depends on readline py25-readline depends on readline sqlite3 depends on readline ghc depends on readline octave depends on readline All this is really not a problem in practice---all the ports that I need are working perfectly; I'd just dearly like to understand what's going on. Finally, here's the output of `port installed' (with all the extra embarrassment that goes with letting everyone else see exactly what I do with my computer...) Any clues as to what's going on would be appreciated. Mark fibonacci:~ dickinsm$ port installed The following ports are currently installed: apr @1.2.8_0 (active) apr-util @1.2.8_2 (active) aquaterm @1.0.1_0+darwin_8 (active) atk @1.12.4_0 (active) auctex @11.83_0+devel (active) audiofile @0.2.6_0 (active) autoconf @2.61_0 (active) automake @1.10_0 (active) bash @3.2.9_1 (active) bzip2 @1.0.4_1 (active) cairo @1.2.6_0 (active) curl @7.16.1_0+darwin_8 (active) darcs @1.0.8_1 (active) db4 @4.3.29_0+darwin_8 (active) db44 @4.4.20_1+darwin_8 (active) dejagnu @1.4.4_0 (active) dos2unix @3.1_0 (active) emacs-devel @22.0.50.1-20060622_2+carbon+darwin_8 (active) esound @0.2.36_0 (active) expat @2.0.0_1 (active) fftw-3 @3.1.2_0 (active) file @4.19_1 (active) fontconfig @2.4.2_0+macosx (active) freeciv @2.0.8_0 (active) freetype @2.1.10_1 (active) gawk @3.1.5_2 (active) gcc34 @3.4.6_1+darwin_8 (active) gcc40 @4.0.4_0+darwin_8 (active) gcc41 @4.1.2_1+darwin_8 (active) gd2 @2.0.33_2 (active) gettext @0.16.1_0 (active) ghc @6.6_3+darwin_8_powerpc (active) ghostscript @8.54_0 (active) glib1 @1.2.10_5 (active) glib2 @2.12.9_0 (active) glpk @4.15_0 (active) gmake @3.81_0 (active) gmp @4.2.1_4+test (active) gnuplot @4.0.0_3+darwin_8 (active) gsed @4.1.5_0 (active) gtk1 @1.2.10_6 (active) gtk2 @2.10.9_0 (active) hdf5 @1.6.5_0 (active) hugs98 @plus-Sep2006_0 (active) ImageMagick @6.3.2-9_0+darwin_8 (active) imlib @1.9.15_0 (active) ispell @3.3.02_0 (active) jasper @1.701.0_0 (active) jpeg @6b_1 (active) libiconv @1.11_4+darwin_8 (active) libpcap @0.9.5_0 (active) libpixman @0.1.6_0 (active) libpng @1.2.16_0+darwin_8 (active) libsdl @1.2.11_0+darwin_8 (active) libtool @1.5.22_0 (active) libungif @4.1.4_0 (active) libxml @1.8.17_0 (active) libxml2 @2.6.27_0 (active) metis @4.0_0+darwin_8 (active) mpfr @2.2.1_0+darwin_8 mpfr @2.2.1_1+darwin_8 (active) ncurses @5.6_1+darwin_8 (active) ncursesw @5.6_0+darwin_8 (active) neon @0.26.3_0 (active) netpbm @10.26.30_0+darwin_8 (active) nmap @4.20_0 (active) ocaml @3.09.3_1 (active) octave @2.9.9_4+test (active) odcctools @20060413_0 (active) openssl @0.9.8e_0+darwin_8 (active) pango @1.14.10_0 (active) pari @2.3.1_1 (active) pcre @7.0_0 (active) pdflib @7.0.0_0+darwin_8 (active) pdftk @1.41_0 (active) perl5.8 @5.8.8_0+darwin_8 (active) pkgconfig @0.21_0 (active) py-numpy @1.0.1_0 (active) py-pil @1.1.5_1 (active) py-pyx @0.9_0 (active) py-readline @2.4.3_0 (active) py-scipy @0.5.2_0 (active) py25-readline @2.5_0 (active) python24 @2.4.3_1+darwin_8 (active) python25 @2.5_1+darwin_8 (active) readline @5.1.004_0 (active) render @0.9_0 (active) ruby @1.8.5_2 (active) splint @3.1.1_0 (active) sqlite3 @3.3.13_0+darwin_8 (active) subversion @1.4.3_0 (active) SuiteSparse @2.4.0_0 (active) tcl @8.4.14_0 (active) teTeX @3.0_3 (active) texi2html @1.76_3 (active) texinfo @4.8_2 (active) tiff @3.8.2_0+darwin_8 (active) tk @8.4.14_0 (active) Xft2 @2.1.7_0 (active) xrender @0.9.0_0+darwin_8 (active) zlib @1.2.3_0 (active)
On Mar 6, 2007, at 10:51 AM, Mark Dickinson wrote:
Any clues as to what's going on would be appreciated.
I'm wondering on this too. It seems like I'm getting some left-over cruft: $ port dependents expat | grep apr-util apr-util depends on expat apr-util depends on expat apr-util depends on expat apr-util depends on expat apr-util depends on expat apr-util depends on expat apr-util depends on expat $ port installed apr-util The following ports are currently installed: apr-util @1.2.8_1 (active) So where do the other six dependents come from? Do I just have stale entries in my port registry? Is the dependents command repeating on the same entry? Should dependents include the version number? $ find /opt/local/var/db/dports -name apr-util-* /opt/local/var/db/dports/distfiles/apr-util/apr-util-1.2.7.tar.bz2 /opt/local/var/db/dports/distfiles/apr-util/apr-util-1.2.8.tar.bz2 /opt/local/var/db/dports/packages/darwin/powerpc/apr- util-1.2.8_1.powerpc.tgz /opt/local/var/db/dports/software/apr-util/1.2.8_1/opt/local/lib/ pkgconfig/apr-util-1.pc I certainly find the output rather ambiguous. Chris
I think I'm beginning to understand. I've just discovered the dep_map file, at: /opt/local/var/db/dports/receipts/dep_map.bz2 It seems this is exactly where the information for `port deps' and `port dependents' is coming from. Moreover, when I upgrade a package, extra entries are added to this file. When I later do a `port -f uninstall inactive', the extra entries remain. For example, I just discovered that there's an upgrade for `file'. Before upgrading, I get: dickinsm$ bzcat dep_map.bz2 | tr -s '{}' ' \n' | grep -n file 6: audiofile lib esound 358: zlib port file showing that there's just one entry corresponding to file in dep_map.bz2, corresponding to the dependency of file on zlib. `port dependents zlib' mentions file exactly once. After `port upgrade file', the same command as above gives: dickinsm$ bzcat dep_map.bz2 | tr -s '{}' ' \n' | grep -n file 6: audiofile lib esound 358: zlib port file 386: zlib port file and now `port dependents zlib' lists file twice, instead of once. After uninstalling the now inactive old version of file, both the `{zlib port file}' entries in dep_map are still there. Perhaps this is a symptom of using `port upgrade ...' instead of `port -u upgrade'? Would things get horribly messed up if I just manually removed all duplicate entries from dep_map? Does dep_map care about the ordering of entries at all? Mark
participants (4)
-
Christian Voelker
-
cssdev@mac.com
-
Mark Dickinson
-
Ryan Schmidt