Ubuntuでapt使用時の「Daemons using outdated libraries」ポップアップを停止する方法
Ubuntu 22.04 LTSでは、パッケージのインストールや更新時に「Daemons using outdated libraries」(古いライブラリを使用しているデーモン)という警告メッセージが表示され、どのサービスを再起動するか選択するよう求められることがあります。このガイドでは、この通知を効果的に管理・無効化する方法を解説します。
問題の理解
Ubuntu 22.04で導入された新しい機能により、apt
でパッケージを更新する際に、古いライブラリを使用している実行中のサービスを検出すると対話型のプロンプトが表示されます。これは needrestart
というツールによるもので、セキュリティとシステムの安定性を向上させる目的で導入されました。
しかし、サービスの再起動を毎回手動で選択するのは煩わしく、特にスクリプトによる自動更新を実行している場合には問題となります。
解決方法
方法1: 自動再起動を有効にする(推奨)
サービスを自動的に再起動するように設定すると、プロンプト表示を回避できます。
sudo sed -i "s/#\$nrconf{restart} = 'i';/\$nrconf{restart} = 'a';/" /etc/needrestart/needrestart.conf
この設定により、更新が必要なサービスは自動的に再起動され、対話型プロンプトは表示されなくなります。
TIP
セキュリティ的観点から、この方法が最も推奨されます。古いライブラリを使用したままにするとセキュリティリスクが生じるため、自動再起動によりシステムを最新の状態に保つことができます。
方法2: 再起ートが必要なサービスをリスト表示のみする
プロンプトを表示させずに、どのサービスが再起動を必要としているか情報だけを得たい場合:
sudo sed -i "s/#\$nrconf{restart} = 'i';/\$nrconf{restart} = 'l';/" /etc/needrestart/needrestart.conf
この設定では、サービスは自動的に再起動されませんが、再起動が必要なサービスのリストが表示されるだけです。
方法3: 設定ファイルを手動で編集する
エディタを使用して直接設定ファイルを編集することもできます:
sudo nano /etc/needrestart/needrestart.conf
ファイル内で以下の行を探し:
#$nrconf{restart} = 'i';
コメントを外して値を変更します:
# 自動再起動する場合
$nrconf{restart} = 'a';
# またはリスト表示のみする場合
$nrconf{restart} = 'l';
編集後、ファイルを保存して終了します。
高度な設定オプション
needrestart.conf
ファイルでは、他にも以下のような設定が可能です:
$nrconf{override_rc}
: 実行中のサービスごとの再起動動作を個別に設定- ブラックリスト/ホワイトリスト: 特定サービスの再起動動作を制御
- 通知方法: ポップアップ以外の通知方法を設定
注意
needrestart
を完全に無効化することはお勧めしません。セキュリティ更新後にサービスを再起動しないことは、既知の脆弱性を残したままにする可能性があります。
一時的な無効化
一時的にのみこの機能を無効にしたい場合は、環境変数を使用できます:
sudo NEEDRESTART_MODE=a apt upgrade
まとめ
Ubuntu 22.04の「Daemons using outdated libraries」通知は、システムセキュリティを向上させる有用な機能ですが、ワークフローによっては煩わしさを感じることがあります。設定を a
(自動再起動)または l
(リスト表示のみ)に変更することで、この通知を管理しやすくなります。セキュリティを考慮すると、自動再起動を選択することが最も安全な選択肢です。