MageiaでDNFを使用して古いカーネルを簡単に削除する方法は?

MageiaでDNFを使用して古いカーネルを簡単に削除する方法は?

installonly_limit 3マゼイアではinetc/yum/yum.confとinがetc/dnf/dnf.conf何の効果もないようで、実行しても実行してdnf autoremoveみたがdnf remove $(dnf repoquery --installonly --latest-limit=-2)、削除できないと文句を言って失敗したbasesystem。実際に何を見逃しているかdnf repoquery --installonly --latest-limit=-2に関係なく、最新のコアを含むすべてのコアを返すようです。--latest-limitこのコマンドラインが見つかりましたこの文書、DNFをサポートする他のディストリビューションでは実行できますが、Mageiaでは実行できません。

dnf repoquery --installonly私にしてください:

kernel-desktop-5.15.11-3.mga8-0:1-1.mga8.x86_64
kernel-desktop-5.15.15-1.mga8-0:1-1.mga8.x86_64
kernel-desktop-5.15.4-1.mga8-0:1-1.mga8.x86_64
kernel-desktop-5.15.6-2.mga8-0:1-1.mga8.x86_64

dnf remove --oldinstallonly --setopt installonly_limit=1削除する以前のインストール専用パッケージがないことを伝えます。

答え1

しばらくRPMを使用してDNFを使用しているため、DNFベースのソリューションは機能しません。

以下は、最近インストールされたカーネルと現在使用されているカーネルのみを保持するRPMを使用するソリューションです。

#!/bin/bash
# script written by Julien Gouesse, under General Public License version 2
if [ ! -n "$BASH" ]
  then echo "Please run $0 with bash"
       exit 1
fi
if [ "$EUID" -ne 0 ]
  then echo "Please run $0 as root"
       exit 2
fi
kernelType=$(uname -r | cut -f 2 -d "-")
kernelReleaseNumber=$(uname -r | cut -f 1 -d "-")
kernelPatchLevelAndDistro=$(uname -r | cut -f 3 -d "-")
currentlyLoadedKernelPackagePrefix="kernel-$kernelType-$kernelReleaseNumber-$kernelPatchLevelAndDistro"
latestKernelPackagePrefix="kernel-$kernelType-latest-"
mostRecentlyInstalledKernelVirtualPackagePrefix=$(rpm -qa|grep $latestKernelPackagePrefix)
mostRecentlyInstalledKernelPackagePrefix=${mostRecentlyInstalledKernelVirtualPackagePrefix/-latest/}
packagesToDeinstall=""
for i in $(rpm -qa|grep kernel-desktop-)
do
   if [[ "$i" != *"$currentlyLoadedKernelPackagePrefix"* ]] && [[ "$i" != *"$mostRecentlyInstalledKernelVirtualPackagePrefix"* ]] && [[ "$i" != *"$mostRecentlyInstalledKernelPackagePrefix"* ]]
     then
       packagesToDeinstall+=" $i"
   fi
done
if [ "$packagesToDeinstall" == "" ] 
  then
    echo "No kernel to deinstall"
  else
    urpme $packagesToDeinstall
fi

これは非常に具体的なソリューションであり、他のディストリビューションでは機能しません。

関連情報