![apt updateを複数回実行するとアップグレードが不可能になる](https://rvso.com/image/913200/apt%20update%E3%82%92%E8%A4%87%E6%95%B0%E5%9B%9E%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%8C%E4%B8%8D%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%82%8B.png)
システムを更新するスクリプトがあります:
sudo apt update && sudo apt upgrade && sudo apt autoremove
アップグレードがロックされているため、アップグレード可能なパッケージをアップグレードできないというエラーが表示されることがあります。スクリプトを再度実行すると、そのときにはapt update
アップグレードするものが何も表示されず、実行するときにapt upgrade
「アップグレードするものが何もない」ためアップグレードは実行されません。最初にリストされたパッケージをアップグレードするにはどうすればよいですかapt update
?
実際のケース: 現在、Firefox 67.0.3 (バージョン 67.0.4 が利用可能) を使用していますが、最初はapt update
更新があることが示されていました。アップグレードできず、apt update
再度実行すると Firefox のアップグレードはリストされず、apt upgrade
何もアップグレードされませんでした。
この問題を Google で検索しましたが、見つかりません。どんな助けでもいただければ幸いです。
よろしくお願いします。英語が下手で申し訳ありません
答え1
最も可能性の高い理由は、無人アップグレードの実行と同時にスクリプトを実行している場合があることです。
無人アップグレード ログを確認すると簡単に確認できます。
以下は、今日の早朝の無人アップグレード ログの例です。
$ grep 2019-06-21 /var/log/unattended-upgrades/unattended-upgrades.log
2019-06-21 06:35:25,971 INFO Initial blacklist :
2019-06-21 06:35:25,986 INFO Initial whitelist:
2019-06-21 06:35:25,986 INFO Starting unattended upgrades script
2019-06-21 06:35:25,986 INFO Allowed origins are: o=Ubuntu,a=disco, o=Ubuntu,a=disco-security, o=UbuntuESM,a=disco,
2019-06-21 06:36:00,248 INFO Packages that will be upgraded: bind9-host intel-microcode libbind9-161 libdns-export1104 libdns1104 libirs161 libisc-export1100 libisc1100 libisccc161 libisccfg163 liblwres161 libpq5
2019-06-21 06:36:00,248 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2019-06-21 06:37:18,374 INFO All upgrades installed
ログの5行目を見てください(Packages that will be upgraded:...
): このリストはaptから直接取得されます。ほとんどから取得したリストと同じですsudo apt update
。無人アップグレードのデフォルト設定では、-security ポケットのみを使用します。-updates、-backports、PPA、サードパーティのリポジトリは使用されません。そのため、セキュリティ以外のパッケージがいくつかインストールされない場合があります。この設定は変更できます。
次に、ログの 7 行目 ( ) を見てくださいAll upgrades installed
。これは、5 行目にリストされているすべてのパッケージが正常にアップグレードされ、Unattended Upgrades が apt ロックを解除してその日のアップグレードを終了したことの確認です。問題や障害が発生した場合、または UU がまだ動作している場合は、この行は表示されません。
sudo apt update
06:35 に手動で実行した場合、アップグレードするパッケージが多数あることがわかります。しかしsudo apt upgrade
、06:38 に実行した場合、パッケージはアップグレードされませんでした...これは、Unattended Upgrades によってすでにアップグレードされていたためです。
答え2
sudo apt update が完了するたびに、Ubuntu ソフトウェア アップデートが邪魔をしているのだと思います。ソフトウェア アップデート設定を開いて、すべてのオプションが「なし」に設定されていることを確認してください。これでポップアップが抑制されるとは思いませんが、自動アップグレードを試みたり、ファイルをロックしたりすることは防げるはずです。
Firefox を修正するには、 を実行してsudo apt install --reinstall firefox
問題が解決するかどうかを確認します。 ロックに関するエラーが表示される場合は、通常、 で削除できますsudo rm /var/lib/dpkg/lock
。
ちなみに、スクリプトでは、sudo -- sh -c 'apt update; apt upgrade --autoremove -y'