Я могу выяснить, почему порт X является зависимостью порта Y?

Zsh идет insert-and-predict¹ виджет выпуска, который заставляет его предложить завершения спонтанно на основе Вашей истории команд.

¹ info -f zsh --index-search=predict-on или LESS=$LESS+/predict-on man zshcontrib на Вашей машине.

Испытать его:

autoload predict-on
predict-toggle() {
  ((predict_on=1-predict_on)) && predict-on || predict-off
}
zle -N predict-toggle
bindkey '^Z'   predict-toggle
zstyle ':predict' toggle true
zstyle ':predict' verbose true

И используйте Ctrl-Z для включения или выключения.

2
27.11.2013, 01:09
1 ответ

Система портов обеспечивает сделать цель для отображения времени выполнения, и buildtime зависимости Видят страницу справочника портов.

Таким образом, необходимо смочь использовать make pretty-print-run-depends-list pretty-print-build-depends-list получить список зависимостей.

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.

Можно использовать эти цели для создания сценария оболочки для следования за зависимостями (это было глупым быстрым взломом, таким образом, существует, вероятно, лучший путь).

#!/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

Для webalizer Вы найдете, по крайней мере, этот путь зависимости от сборки к Python webalizer-> gd-> tiff-> freeglut-> libGLU-> libGL->/usr/ports/lang/python

4
27.01.2020, 22:01
  • 1
    Спасибо, но я уже знаю, как получить список зависимостей для любых данных портов. То, что я хочу, должно смочь видеть, почему один порт зависит от другого - как в OP, я хочу знать, почему меня просят установить Python, когда я пытаюсь установить Webalizer. Что цепочка зависимостей является ведущей к этому? –  Garrett Albright 29.11.2013, 03:21
  • 2
    Предположения, я добавил сценарий оболочки, который использует те цели для следования за зависимостями. –  Craig 02.12.2013, 19:02
  • 3
    Спасибо! Ваш сценарий был полезен (особенно после передачи по каналу к grep для фильтрации вывода). После наблюдения, что gd был общим преступником, я уделил больше внимания экранам конфигурации и отключил большинство связанных с изображением вещей вместо того, чтобы просто принять значения по умолчанию и получил его до такой степени, когда, он должен установить всего четыре зависимости, и ни один из них не новые языки сценариев. Было бы замечательно, если бы был некоторый способ определить, какая опция конфигурации, ведомая к установке, которой порт, но поскольку это - это, подсказал меня в правильном направлении. –  Garrett Albright 03.12.2013, 01:48

Теги

Похожие вопросы