Порты FreeBSD: Как я могу видеть все зависимости для порта и все подзависимости для тех зависимостей?

Неважно, насколько можно хотеть, по крайней мере, приблизительный ответ на вопрос, который не возможно дать один, не зная много об инфраструктуре, пользователях и использовании. Я дам Вам пример.

В моей предыдущей роли я был ответственен за австралийскую сеть для транснациональной компании. Количество серверов не имело абсолютно никакого эффекта на мою рабочую нагрузку, потому что моя работа затронута тем, что те серверы делают, а не сколько из них я имел. Я имел 4, когда я starte там и 15, когда я уехал. Из-за надлежащей установки и управления те 15 были меньшей проблемой мне, чем оригинал 4.

В той же самой компании число пользователей было довольно стабильно приблизительно в 60 - 80 активных пользователях, плюс целый набор иногда-пользователей, рассеянных по всей стране. Пользователи расположились в экспертных знаниях, но в среднем они были вполне прилично образованы и вели себя, таким образом, они создали мало работы для меня. В большинстве организаций пользователи, больше, чем что-либо еще, определят рабочую нагрузку администратора. Если, конечно, они не могут сбыть их к справочной службе.

Мое задание было все включено. Если что-то включенное где угодно, обычно считалось моей ответственностью, было ли это телефоном, принтером, копировальным устройством, факсом, ПК, сервером или ноутбуком троюродного брата менеджера.

Я первоначально сделал одну только всю работу, но в результате принятия дополнительных проектов я позже заставил юниора выручать. Истина быть сказанным, это были действительно только полтора задания человека, таким образом, у нас был он довольно легкий, хотя мы никогда не позволяем управлению знать это.

Я знаю о других в подобном виде роли, где 3 или 4 администратора очень упорно работают, и не потому что они не хороши в том, что они делают. У них просто есть другой вид пользователя или использования.

9
задан 26 April 2015 в 18:27
5 ответов

Вы очень близко. Попробуйте вместо этого:

make all-depends-list

Это будет рекурсивно пройти через все зависимости и распечатать их для вас. Чтобы протестировать различные сценарии сборки и их влияние на список зависимостей, попробуйте такие вещи, как:

make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list

make WITHOUT_X11=yes all-depends-list

Вот полный набор целей печати зависимостей:

all-depends-list
build-depends-list
run-depends-list
package-depends-list
pretty-print-build-depends-list
pretty-print-run-depends-list

Ура, Грег

17
ответ дан 2 December 2019 в 22:22

Вам также придется рекурсивно получать все подзависимости. Вероятно, есть инструменты для этого в категории ports-mgmt ...

Я использую portmaster (8) для управления портами. Он всегда собирает (под) зависимости перед компиляцией и установкой порта:

~> portmaster --show-work devel/apache-ant
===>>> Port directory: /usr/ports/devel/apache-ant
===>>> Starting check for all dependencies
===>>> Gathering dependency list for devel/apache-ant from ports

===>>> Installed converters/libiconv
===>>> Installed devel/gettext
===>>> NOT INSTALLED            devel/gmake
===>>> Installed devel/libcheck
...
1
ответ дан 2 December 2019 в 22:22

Большинство списков зависимостей сложно проанализировать с первого взгляда. Я предпочитаю использовать этот сценарий оболочки от helmut@charlieroot.de , потому что он отображает красивый вложенный список с восходящей и нисходящей зависимостями:

$ pkg_depends.pl ruby18-bdb-0.6.5_1
Package ruby18-bdb-0.6.5_1 depends on:
    db41-4.1.25_4
    ruby-1.8.7.248_5,1
Package ruby18-bdb-0.6.5_1 is required by:
    portupgrade-2.4.7,2

Запуск его без аргументов может создать очень длинный список, потому что он показывает все цепочки зависимостей для всех файлов, поэтому я обычно рекомендую запускать его только для определенного порта.

1
ответ дан 2 December 2019 в 22:22

Перечислить порты, от которых зависит:

pkg_info -rx "port-name"

Перечислить порты, для которых требуется :

pkg_info -Rx "port-name"

-- Ответ с этого сайта:http://daemon-notes.com/tips (спасибо Россу)

.
1
ответ дан 2 December 2019 в 22:22

спустя несколько лет ...

мое решение для установки пакетов (для резервного копирования)

у меня есть решение для FreeBSD 12+ (bash)

for i in $( cd /usr/ports/databases/mysql80-server/ && make run-depends-list); do pkg create -o /root/packages $( echo $i | rev | cut -d '/' -f1 | rev ); done

но вы можете изменить Команда pkg с создания на установку и изменение запуска на сборку

for i in $( cd /usr/ports/databases/mysql80-server/ && make build-depends-list); do pkg install $( echo $i | rev | cut -d '/' -f1 | rev ); done
0
ответ дан 9 April 2021 в 08:08

Теги

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