ここに何か奇妙なことがあります。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
!)