Intereting Posts
Совместная работа Ubuntu и Windows Список блогов, чтобы узнать больше о Ubuntu Как вы попадаете в корневую директорию, в которой мне нужно удалить файл? Как проверить температуру аккумулятора ноутбука? Как узнать нормальную температуру? TP-Link WN-822N (rtl8192eu) не работает Каков самый простой способ редактировать и добавлять файлы в «/ var / www»? Как увеличить яркость в меньших шагах? Как установить значения ключа списка через gconftool-2? Применить изменения или перезапустить Unity dash / launcher / … без перезагрузки или выхода из системы 404 с обновлением apt-get, у вас нет PPA Очистить вкладку дополнительных драйверов после установки nvidia-319 и проблемы с настройками nvidia Какой пакет является инструментом для проверки работоспособности жесткого диска 16.04 AMD Графическая карта не используется должным образом Есть ли способ создать скрытую учетную запись? Ubuntu 14.04 – мышь может щелкнуть, но не может двигаться

Как я могу получить «подробный» код выхода apt-get?

Как я могу получить «подробный» код выхода для apt-get чтобы такие ошибки

 Package google-chrome is a virtual package provided by: google-chrome-stable 29.0.1547.76-r223446 google-chrome-beta 30.0.1599.47-1 You should explicitly select one to install. E: Package 'google-chrome' has no installation candidate 

имеют другой код выхода, кроме ошибок загрузки, подобных этому

 Err http://dl.google.com/linux/chrome/deb/ stable/main google-chrome-stable amd64 29.0.1547.76-r223446 Something wicked happened resolving 'dl.google.com:http' (-11 - System error) 

В настоящее время оба выхода ошибок с 100

В принципе, я бы хотел, чтобы ошибки загрузки выходили с другим кодом, чем с ошибками, такими как первый. Если возможно, я хочу, чтобы каждая конкретная ошибка имела другой код выхода, но приведенный выше пример – это минимальный размер, который мне нужен. Как я могу это сделать в установке Ubuntu для ванили без дополнительного программного обеспечения (за исключением aptitude )?

Не полный ответ, но сначала вы можете проверить наличие пакетов, выполнив apt-cache policy X Xt apt-cache policy X и grepping вывод для «Candidate (none)» или «Could not find package X» и т. Д.

Я считаю, что это не случай XY, и вы просто хотите отлаживать apt-get вообще. При таких предположениях здесь есть мой ответ.

От man apt.conf :

Варианты DEBUG

Включение параметров в разделе Debug :: приведет к отправке отладочной информации в стандартный поток ошибок программы с использованием apt-библиотек или включение специальных программных режимов, которые в первую очередь полезны для отладки поведения apt.

Следовательно, вам нужно только активировать правила для каждого поведения отладки apt-get :

  • Debug :: pkgProblemResolver : позволяет выводить информацию о решениях, сделанных dist-upgrade, обновлять, устанавливать, удалять, очищать.
  • Debug :: NoLocking : отключает блокировку файлов. Это можно использовать для запуска некоторых операций (например, apt-get -s install) в качестве пользователя без полномочий root.
  • Debug :: pkgDPkgPM : выводит фактическую командную строку каждый раз, когда apt вызывает dpkg (1).

Эти 3 являются первыми, которые рекомендует страница руководства, и первая поможет вам отладить первую ошибку, которую вы показываете. Для второго вам может понадобиться:

  • Debug :: Acquire :: http : печать информации, связанной с загрузкой пакетов с использованием HTTP. Существует также https , ftp , cdrom .

На странице man apt.conf | grep -A5 -i debug есть еще много, вы можете легко их перечислить с помощью man apt.conf | grep -A5 -i debug man apt.conf | grep -A5 -i debug .

Все это должно быть написано с использованием правильного синтаксиса, и они принимают логические значения:

 Debug::*::* "true"; 

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

 Debug { Acquire { http "true"; ftp "true"; }; NoLocking "true"; }; 

Если вы хотите запускать только для экземпляра apt-get, вы можете использовать переключатель -o / --option :

 sudo apt-get -o Debug::pkgProblemResolver=true -o Debug::Acquire::http=true -f install 

Другой способ – создать свой персонализированный файл конфигурации и загрузить его с помощью ключа -c / --config-file :

 sudo apt-get -c debug-apt.conf install hello 

Что касается изменения кодов выхода, я считаю, что вы не можете, если не изменить исходный код. apt-get – это современное программное обеспечение, поэтому он имеет расширенные методы для отладки процесса без необходимости использования кодов выхода.