首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mageia下方便地去除DNF下的旧核?

如何在Mageia下方便地去除DNF下的旧核?
EN

Unix & Linux用户
提问于 2022-01-19 17:13:18
回答 1查看 792关注 0票数 0

由于installonly_limit 3 in etc/yum/yum.conf和in etc/dnf/dnf.conf在Mageia下似乎没有任何效果,即使运行了dnf autoremove,我也尝试运行dnf remove $(dnf repoquery --installonly --latest-limit=-2),但它失败了,因为它抱怨无法删除basesystem。实际上,dnf repoquery --installonly --latest-limit=-2似乎返回所有内核,包括最新的内核,而不管--latest-limit的值如何。我遗漏了什么?我在这份文件中找到了这个命令行,它在其他一些支持DNF的发行版上工作,但在Mageia下不工作。

dnf repoquery --installonly给了我:

代码语言:javascript
复制
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告诉我,没有要删除的旧安装包。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-01-24 23:02:22

由于我在使用RPM一段时间后使用了DNF,基于DNF的解决方案不起作用。

这是我使用RPM的解决方案,它只保留最近安装的内核和当前正在使用的内核:

代码语言:javascript
复制
#!/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

请记住,这是一个非常具体的解决方案,它在其他发行版下不起作用。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/687044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档