GNU/Linux >> Linux の 問題 >  >> Ubuntu

Apt-get Autoremoveが古いカーネルを削除しないのはなぜですか?

私のブートパーティションはSSD上にあるため、約8を超えるカーネルバージョンをインストールする余地がありません。ブートパーティションが古いバージョンでいっぱいであるため、最終的に一部のカーネルアップデートのインストールに失敗します。古いバージョンを削除する方法(プロセスを自動化する方法も)については多くの質問がありますが、私の質問は単にこれです:なぜapt-get autoremove それらを自動的に検出して削除します。そうする方法はありますか ?つまり、apt-get とにかくそれらをインストールしたのは何ですか、それでそれはそれらについて知っています、それでなぜそれはすべての古いバージョンを残すことを選ぶのですか?

ベストアンサー

理由を答えるには、ファイル/etc/apt/apt.conf.d/01autoremove-kernelsを参照してください。

ご覧のとおり、別の(スクリプト)ファイル/etc/kernel/postinst.d/apt-auto-removalで示されているように、aptはカーネルを自動削除しないように指示されています。 。そしてここにあります:

選択した2つのカーネル、つまり最初のカーネルと現在のカーネルを手動でインストールした場合、apt-autoremoveは手動でインストールしなかった古いバージョンのみを削除するため、これら2つのオプションに加えて、最新のものを常に使用できます。

更新:

/etc/kernel/postinst.d/apt-auto-removal内 この部分があります:

if [ "$latest_version" != "$installed_version" ] 
   || [ "$latest_version" != "$running_version" ] 
   || [ "$installed_version" != "$running_version" ]
then
        # We have at least two kernels that we have reason to think the
        # user wants, so don't save the second-newest version.
        previous_version=
fi

したがって、01autoremove-kernelsの出力を比較すると ファイルとuname -r 現在実行中のカーネルとその前の最新のカーネルは、そのスクリプトによって削除されないようになっていることがわかります。別のファイル/etc/apt/apt.conf.d/01autoremoveがあることが判明しました 、行がある場合:

    APT
    {
      NeverAutoRemove
      {
            "^firmware-linux.*";
            "^linux-firmware$";
      };
  VersionedKernelPackages
  {
        # linux kernels
        "linux-image";
        "linux-headers";
        "linux-image-extra";
        "linux-signed-image";
        # kfreebsd kernels
        "kfreebsd-image";
        "kfreebsd-headers";
        # hurd kernels
        "gnumach-image";
        # (out-of-tree) modules
        ".*-modules";
        ".*-kernel";
        "linux-backports-modules-.*";
        # tools
        "linux-tools";
  };

したがって、これらをコメントアウトすると、apt-autoremoveを使用してカーネルを自動削除できます。 、覚えておいてください–これは自己責任で行ってください


Ubuntu
  1. CentOSLinuxで古い未使用のカーネルを削除する方法

  2. チルダ(〜)が二重引用符の内側に展開されないのはなぜですか?

  3. Bashスクリプトがエイリアスを認識しないのはなぜですか?

  1. 〜/ .bash_profileが機能しないのはなぜですか?

  2. Grep – GrepパターンのブラケットがPs結果からGrepプロセスを削除するのはなぜですか?

  3. Linux – Apt Autoremoveがすべての古いカーネルパッケージを一度に削除しないのはなぜですか?

  1. `sudo Apt-get Remove Python2.7`を実行しましたが、Ubuntuを今すぐ復元できますか?

  2. 更新とアップグレードの分離が存在するのはなぜですか?

  3. Apt-「適性なぜ」と同等のものを入手しますか?