Como posso obter um código de saída 'detalhado' para apt-get
que erros como este
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
tem um código de saída diferente do que erros de download como este
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)
Atualmente, os dois erros saem com 100
Basicamente, eu gostaria que os erros de download saíssem com um código diferente dos erros como o primeiro. Se possível, gostaria que cada erro específico tivesse um código de saída diferente, mas o exemplo acima é o mínimo necessário. Como posso fazer isso em uma instalação baunilha do Ubuntu sem software adicional (com exceção de aptitude
)?
apt-get --download-only
primeiro.apt-cache policy X
?apt-cache policy google-chrome
não lhe dê uma linha com a palavra "Candidato", enquanto oapt-cache policy google-chrome-stable
faria.Respostas:
Não é uma resposta completa, mas você pode testar primeiro a existência de pacotes executando
apt-cache policy X
e cumprimentando a saída para "Candidate (none)" ou "Não foi possível encontrar o pacote X" etc.fonte
Eu acredito que este não é um caso de XY, e você só deseja poder depurar o apt-get em geral. Sob tais suposições, aqui está minha resposta.
De
man apt.conf
:Portanto, você só precisa ativar as regras para cada um dos comportamentos de depuração de
apt-get
:Esses três são os primeiros que a página do manual recomenda e o primeiro ajudará você a depurar o primeiro erro que você mostrar. Por um segundo, você pode precisar de:
https
,ftp
,cdrom
.A página de manual tem muito mais, você pode listá-las facilmente usando
man apt.conf | grep -A5 -i debug
.Tudo isso deve ser escrito usando a sintaxe correta e eles aceitam valores booleanos:
ou se você quiser usar várias linhas:
Se você deseja executar apenas para uma instância do apt-get, pode usar a opção
-o
/--option
:Outro método é criar seu arquivo de configuração personalizado e carregá-lo com a opção
-c
/--config-file
:Sobre a alteração dos códigos de saída, acredito que você não pode, a menos que altere o código-fonte.
apt-get
é uma peça de software de última geração , pois possui métodos avançados para depurar o processo sem a necessidade de confiar nos códigos de saída.fonte
apt-get
, não o tempo todo.-o
opção para executar comandos ad-hoc. Atualizei minha resposta.apt-cache policy PACKAGE
, como Jos disse. Eu estava tentando verificar se um pacote foi instalado, não pode ter pedido a minha pergunta certa, mas esta é uma boa resposta