Xin Liu wrote:
Hi,
I'm just wondering, is there an easy way to know the full dependencies for installing a package? For instance, gnuplot depends on tetex, and tetex further depends on texinfo, then is it possible for me to know that gnuplot indirectly depends on texinfo before the actual downloading and compiling start? I ask this because I want to easily find out the full dependencies of installing a package before installing anything, so that if I don't like a particular dependency, I can edit the portfile to bypass it.
Best Regards,
Xin Liu
Hi, sorry for the late reply, but I didn't came across this problem until now. I don't know of any direct way within macports but I created a small ruby script which does what you want. I'm not sure if it uses a very good way, because it's a bit slow, but it works for me. Just use "./alldeps.rb <your portname here>" with it and it should give you all decencies. I attached it to this mail. But it would be really nice if this could be integrated in macports (or if it's already there, said to me :-) ) Hope this helps, Simon -- + privacy is necessary + using http://gnupg.org + public key id: 0x6115F804EFB33229 #!/usr/bin/env ruby puts "Usage: ./alldeps.rb <port name>" if ARGV[0].nil? # gets all dependencies: def port_deps( port ) # get the dependencies of this port: result = `port deps "#{port}" 2>&1` # abort with false if the port couldn't be found: ( puts result; exit ) if result =~ /Error: No port .+ found\./ # return an empty array if the port doesn't have any dependencies: return [] if result =~ /.+ has no dependencies/ # array to store the dependencies: deps = [] # add each dependency of this port: result.each do |line| deps << line.strip if line =~ /^\s+\S+/ end # add the dependencies of each dependency to deps to get all: deps.each do |dep| # add the dependency only if it doesn't exist already: port_deps( dep ).each { |dep| deps << dep unless deps.include? dep } end # return the collect dependencies: deps end # output all dependencies: port_deps( ARGV[0] ).sort.each { |dep| puts "- #{dep}" }