Isso é aparentemente intencional, veja # 778357 : um código de saída 0 indica sucesso ou um erro transitório, qualquer outra coisa indica um erro permanente.
Conforme indicado na página de manual apt
:
SCRIPT USAGE AND DIFFERENCES FROM OTHER APT TOOLS
The
apt(8)
commandline is designed as an end-user tool and it may change behavior between versions. While it tries not to break backward compatibility this is not guaranteed either if a change seems beneficial for interactive use.All features of
apt(8)
are available in dedicated APT tools likeapt-get(8)
andapt-cache(8)
as well.apt(8)
just changes the default value of some options (seeapt.conf(5)
and specifically the Binary scope). So you should prefer using these commands (potentially with some additional options enabled) in your scripts as they keep backward compatibility as much as possible.
Portanto, você não deve usar apt
em scripts.
(É estranho que você tenha apt
em /usr/local/bin
; já que você tem um pacote apt
atualizado instalado, você provavelmente já o tem em /usr/bin
!)