Canonicalが最近アップデートをプッシュしてからプルバックしているため、私のinstalled (local or obsolete)
カテゴリーがいっぱいになっています。これは最近の2つのカーネルで発生し、今朝cups
で再び発生しました。私は約3年間Ubuntuを使用していますが、今年ほど頻繁に起こっていることを覚えていません。
それで、合理的にこれに対処する方法は?
更新プログラムを週に1回だけインストールすることを考えましたが、その週にチェックする直前にプッシュされた悪い更新プログラムを取得することはできません。
週末にのみ更新プログラムをインストールするのは良い戦略ですか?週末にはシステムの更新が頻繁にプッシュされないようです。金曜日の午後に悪いアップデートをプッシュし、月曜日の朝にそれをプルできると思います。
または、何らかの理由で更新が一定期間(2日間など)プッシュされるまで、更新をインストールしないでください。自動化する方法はありますか?
編集:影響を受けるシステムの1つはlinux-generic
カーネルでLubuntu 16.04を実行し、他のシステムはlinux-generic-hwe-16.04
カーネルでLubuntu 16.04を実行します。どちらもcups
バージョン2.13-4ubuntu0.2の更新の影響を受け、2017年3月27日にプッシュアウトされてから引き戻されました。linux-generic
マシンはカーネル更新バージョン4.4.0.67.12を受け取りましたその後引き戻されました。また、この更新はsnapd
バージョン2.23.1を孤立させましたlinux-generic-hwe-16.04
マシンはカーネルバージョン4.8.0.42.14を受け取りましたが、それはその後孤立しました。
抜本的な選択肢は、* buntuまたはその派生物ではなく、Debian Stableに切り替えることです。これは、Debian Stableが完全なQAプロセスを完了しているのに対し、UbuntuはDebian Testingから派生しているためです。
ほとんどすべての知識は直接譲渡できますが、Debianは最新の化粧品「ベルとホイッスル」を提供しません。ただし、リポジトリにはさらにパッケージがあります...
私はDebianに切り替えました。KDEの場合、約5年前にKubuntuから来て、同様の問題を抱えていました。しかし、それは個人的な選択に帰着します。
バージョン番号またはターゲットリリースがある場合、apt-getは特定のバージョンまたはターゲットリリースの選択をサポートします。
Aptitudeをインストールする
Sudo apt-get install aptitude
パッケージの古いバージョンを表示します。
aptitude versions <package-name> | less # use less to display only the top of the list of versions
選択したパッケージを古いバージョンにロールバックします。
Sudo apt-get -t=<target release> install <package-name> # target release is old version
選択したパッケージの不正な更新をアンインストールします。
Sudo apt-get -t=<target release> remove <package-name> # target release is new version
apt-mark hold
を使用して、ロールバックされたパッケージバージョンが自動的に更新されないようにします。 apt-mark hold
を使用して、パッケージを保留状態としてマークします。これにより、パッケージが自動的にインストール、アップグレード、または削除されなくなります。
Sudo apt-mark hold <package-name>
前のセクションと同じ手順に従いますが、破損したカーネルパッケージをアンインストールする前に動作するカーネルバージョンがインストールされていることをテストする追加の手順に従う必要があります。残念ながら、これにはシステムの再起動が必要です。複数のシステムを保守している場合、これは面倒で時間がかかることがわかっているので、再起動については申し訳ありません。
aptitude versions <package-name>
は現在インストールされているすべてのカーネルバージョンを表示しませんが、次のコマンドで現在インストールされているすべてのカーネルバージョンを表示できます。
dpkg-query -W -f='${Package}\n' | grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3)
このコマンドの結果には、アンインストールする必要があるすべての動作していないカーネルパッケージのパッケージ名が一覧表示されます。
動作していないカーネルバージョンに属するパッケージをアンインストールすると、次のメッセージが表示されます。
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old
you may need to re-run your boot loader[grub]
Vmlinuz.oldは削除されたファイルにリンクされているため、このメッセージが表示されます。したがって、次のコマンドを実行してgrubを更新する必要があります。
Sudo update-grub