Posso descobrir por que a porta X é uma dependência da porta Y?

2

Existe uma maneira fácil de descobrir por que, quando estou tentando instalar uma determinada porta no FreeBSD, alguma outra porta está listada como uma dependência?

Especificamente, estou tentando instalar a porta Webalizer no meu VPS e, ao longo do caminho, é necessário instalar o Python. Eu realmente prefiro não instalar nenhuma nova linguagem de programação no servidor que não vou usar diretamente. Eu suspeito que o Webalyzer é (dependendo de algo que é) + dependendo do Python, e espero que eu possa parar com isso alterando as configurações de uma dessas dependências, mas não tenho certeza de como encontrá-lo.

Eu sei que o pkg_info pode encontrar informações semelhantes para as portas instaladas , mas espero encontrar essa informação antes da instalação.

    
por Garrett Albright 27.11.2013 / 00:09

1 resposta

4

O sistema de portas fornece um destino para exibir dependências de tempo de execução e de tempo de construção Veja o página man de portes .

Portanto, você deve poder usar make pretty-print-run-depends-list pretty-print-build-depends-list para obter uma lista de dependências.

run-depends-list, build-depends-list
                  Print a list of all the compile and run dependencies,
                  and dependencies of those dependencies, by port direc-
                  tory.

 all-depends-list
                  Print a list of all dependencies for the port.

 pretty-print-run-depends-list, pretty-print-build-depends-list
                  Print a list of all the compile and run dependencies,
                  and dependencies of those dependencies, by port name and
                  version.

 missing          Print a list of missing dependencies to be installed for
                  the port.

Você pode usar esses alvos para fazer um script de shell seguir as dependências (isso foi um truque rápido e estúpido, então provavelmente existe uma maneira melhor).

#!/bin/sh

printdeps() {
  local ni
  local dep
  local thisdir

  dir=$1
  port='basename $dir'
  i=$2
  ni="${i}${port}->"

  thisdir="$dir"
  cd "$dir"
  echo ${i}$dir
  for dep in 'make build-depends-list' ; do
    printdeps $dep "$ni"
  done
  cd "$thisdir"
}

printdeps $PWD

Para o webalizer, você encontrará pelo menos esse caminho de dependência de compilação para o python webalizer-> gd- > tiff- > freeglut- > libGLU- > libGL- > / usr / ports / lang / python

    
por 27.11.2013 / 17:59