Как распечатать список всех обновляемых пакетов в Gentoo

Вы можете использовать библиотеку интерпозиции libumem и функцию findleaks mdb.

См. https://blogs.oracle.com/dlutz/entry/memory_leak_detection_with_libumem и https://stackoverflow.com/questions/4656981/solaris-libumem-why-not-show -memory-leak-for-first-dynamic-allocation

4
07.07.2018, 23:58
3 ответа

eix - лучший вариант для этого.

eix --installed --upgrade распечатает все установленные пакеты, где лучшая версия не является текущей версией (для каждого слота).

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

11
27.01.2020, 20:49

История

Теперь, когда у меня снова есть браузер (подробнее об этом ниже), я чувствую, что должен расширить свои комментарии в ответе @ robbat2. После более чем пяти лет использования Gentoo в качестве моей основной ОС и экспериментов в течение этих 5 лет с portage и Paludis я пришел к осознанию того, что все основные дистрибутивы построены на основе системы управления пакетами. /Инструмент.

  1. Debian и его варианты используют apt .
  2. Redhat / Fedora и его варианты используют rpm .
  3. SuSE и его варианты используют yum .
  4. Многие другие

Полный список см .: Список дистрибутивов Linux . Обратите внимание, что Wiki Entry разделяет дистрибутивы по управлению пакетами. Также обратите внимание, что согласно фото временной шкалы , Gentoo является родительским дистрибутивом. Енох было первоначальным именем .

BSD

Исторически сложилось так, что большинство операционных систем BSD не имели концепции управления пакетами до недавнего времени, и с ней можно было бы поработать. Я поместил FreeBSD на дополнительный жесткий диск, чтобы посмотреть, насколько тесно связаны между собой он и Gentoo, и только что закончил компилировать свой порт DE и браузер.

  1. Gentoo имеет дерево портов, FreeBSD использует дерево портов.
  2. Gentoo имеет sys-apps / portage . Команда emerge следует в том же порядке, что и FreeBSD при установке программного обеспечения: настройка, создание, установка - при установке исходного кода непосредственно из дерева портов.

Основное отличие здесь состоит в том, что процесс во FreeBSD требует, чтобы пользователь установил выбранный им менеджер пакетов, а не тот, который выбран FreeBSD, а затем этот менеджер пакетов отслеживает все установленное программное обеспечение и его зависимости.


Я говорю все это, чтобы показать, что если менеджер пакетов выходит из строя при обслуживании системы, проблема либо в компилируемом пакете, либо в базовой системе. Для иллюстрации см .: Ошибка FreeBSD 218620 - x11-wm / muffin ver. 2.4.4 больше не строит . Обратите внимание, что комментарий 1 помешал выбранному мной диспетчеру пакетов завершить установку Cinnamon Desktop не потому, что диспетчер пакетов, который я использую, сломался, работал слишком долго или работал медленно, а потому, что компилируемый пакет сломан, и в этом отношении, больше не поддерживается. Точно так же команда OP emerge не завершается из-за поломки компилируемого пакета. Вместо того, чтобы запускать команду:

emerge -avuDN --with-bdeps y --keep-going @world

вслепую, потому что она была найдена на каком-то веб-сайте, OP должен либо добавить t для просмотра дерева, либо удалить - keep-going . На этом этапе изучите и устраните поломку в пакете с ошибкой, а затем повторно запустите команду. Все пакеты до поломки больше не будут отображаться в выводе, потому что они уже были перекомпилированы с новыми настройками. Эту процедуру следует использовать независимо от того, какой инструмент вы используете для отображения вывода. Eix vs emerge не обсуждается, если поломка происходит из-за ошибки компиляции.

Подсказка

Информация о оскорбительном пакете, которую OP должен изучить, будет находиться по адресу /var/tmp/portage/package-cat/offending-package/temp/build.log

2
27.01.2020, 20:49

Имхо, самый простой способ распечатать список всех обновляемых пакетов в gentoo:

emerge --sync
emerge -puDv @world

Опции выполняют следующие действия:

  • -pпритворяется, что:emergeна самом деле ничего не устанавливает, он просто выводит список пакетов, которые он установил бы без флага -p. Это работает даже без привилегий root.
  • -uобновить :показать только обновляемые пакеты.
  • -Ddeep :также проверьте наличие обновлений зависимостей (пакетов, которые не находятся непосредственно в вашем файле @world, но необходимы для запуска одного из ваших установленных пакетов ).
  • -vподробный :более подробный вывод также показывает флаги использования и текущую установленную версию.

Если вы уверены, что ваше дерево портежей уже обновлено, вы можете пропустить часть emerge --sync.

0
27.01.2020, 20:49

Теги

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