installonly_limit 3
마제이아에서는 in etc/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
이는 매우 구체적인 솔루션이며 다른 배포판에서는 작동하지 않습니다.