aptおよびapt-getエラーコード

aptおよびapt-getエラーコード

ここに何か奇妙なことがあります。apt何かによってロックされています。エラーコードがそれぞれ一致しません。apt update成功は常に返されるようですが、0正しいapt-get updateエラーコードが返されます。

vlastimil@vb-nb-mint ~/Development/bash $ sudo apt-get update
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

vlastimil@vb-nb-mint ~/Development/bash $ echo $?
100

vlastimil@vb-nb-mint ~/Development/bash $ sudo apt update
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

vlastimil@vb-nb-mint ~/Development/bash $ echo $?
0

apt場所:

vlastimil@vb-nb-mint ~/Development/bash $ which apt
/usr/local/bin/apt

aptバージョン:

vlastimil@vb-nb-mint ~/Development/bash $ apt-show-versions apt
apt:amd64/xenial-updates 1.2.12~ubuntu16.04.1 uptodate

もともとapt手動アップグレードスクリプトを使用したかったのですが、これにより状況が変わりました。この問題を解決するのに役立つエラーコードなどを知っている人はいますか?

答え1

これは明らかに意図的なものです。#778357:終了コード0は成功または一時エラーを示し、他の値は永久エラーを示します。

マニュアルページに記載されているようにapt:

他のAPTツールとのスクリプトの使用方法と違い

コマンドapt(8)ラインはエンドユーザーツールとして設計されており、バージョン間で動作が変わる可能性があります。以前のバージョンとの互換性を維持しようとしましたが、変更が対話型の使用に役立つ場合は、これを保証することはできません。

のすべての機能は、apt(8)などの専用APTツールで利用できます。一部のオプションのデフォルト値を変更するだけです(詳細はバイナリ範囲を参照)。したがって、可能な限り以前のバージョンとの互換性を維持するため、スクリプトでこれらのコマンドを使用することをお勧めします(一部の追加オプションが有効になる場合があります)。apt-get(8)apt-cache(8)apt(8)apt.conf(5)

aptしたがって、スクリプトでは使用しないでください。

apt(にあるのは奇妙です/usr/local/bin。最新のaptパッケージがインストールされていることを考慮すると、おそらく最新のパッケージもあるでしょう/usr/bin!)

関連情報