Comment puis-je obtenir un code de sortie «détaillé» pour apt-get
que des erreurs comme celle-ci
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
avoir un code de sortie différent de celui des erreurs de téléchargement comme celle-ci
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)
Actuellement, les deux erreurs se terminent avec 100
Fondamentalement, j'aimerais que les erreurs de téléchargement se terminent avec un code différent de celui des erreurs comme la première. Si possible, j'aimerais que chaque erreur spécifique ait un code de sortie différent, mais l'exemple ci-dessus est le minimum dont j'ai besoin. Comment puis-je le faire dans une installation Ubuntu vanilla sans logiciel supplémentaire (à l'exception de aptitude
)?
apt-get --download-only
abord.apt-cache policy X
?apt-cache policy google-chrome
ne vous donne pas une ligne avec le mot «candidat», alors que leapt-cache policy google-chrome-stable
ferait.Réponses:
Pas une réponse complète, mais vous pouvez d'abord tester l'existence de packages en faisant
apt-cache policy X
et en saluant la sortie pour "Candidat (aucun)" ou "Impossible de trouver le package X", etc.la source
Je crois que ce n'est pas un cas de XY, et vous voulez juste pouvoir déboguer apt-get de manière générale. Sous de telles hypothèses, voici ma réponse.
Du
man apt.conf
:Par conséquent, il vous suffit d'activer les règles pour chacun des comportements de débogage de
apt-get
:Ces 3 sont les premiers que la page de manuel recommande, et le premier vous aidera à déboguer la première erreur que vous montrez. Pour la seconde, vous aurez peut-être besoin de:
https
,ftp
,cdrom
.La page de manuel en a beaucoup plus, vous pouvez les lister facilement en utilisant
man apt.conf | grep -A5 -i debug
.Tout cela doit être écrit en utilisant la syntaxe correcte et ce sont des valeurs booléennes acceptées:
ou si vous souhaitez utiliser plusieurs lignes:
Si vous ne souhaitez exécuter que pour une instance d'apt-get, vous pouvez utiliser le commutateur
-o
/--option
:Une autre méthode consiste à créer votre fichier de configuration personnalisé et à le charger avec le commutateur
-c
/--config-file
:À propos de la modification des codes de sortie, je pense que vous ne pouvez pas sauf si vous modifiez le code source.
apt-get
est un logiciel de pointe , en tant que tel, il dispose de méthodes avancées pour déboguer le processus sans avoir besoin de s'appuyer sur des codes de sortie.la source
apt-get
, pas tout le temps.-o
option pour exécuter des commandes ad hoc. Mis à jour ma réponse.apt-cache policy PACKAGE
, comme l'a dit Jos. J'essayais de vérifier si un paquet était installable, je n'ai peut-être pas posé ma question correctement mais c'est une bonne réponse