in linux/cuda_installer/os_installers/dnf_system.py [0:0]
def unlock_kernel_updates(self):
"""Remove `kernel*` from exclusion list in /etc/dnf/dnf.conf"""
logger.info("Attempting to update /etc/dnf/dnf.conf to unblock kernel updates.")
conf_parser = configparser.ConfigParser()
conf_parser.read("/etc/dnf/dnf.conf")
if "exclude" not in conf_parser["main"]:
logger.info("Kernel updates are not blocked in /etc/dnf/dnf.conf")
return
value = conf_parser["main"]["exclude"]
value = [s.strip() for s in value.split(",")]
if "kernel*" not in value:
logger.info("Kernel updates are not blocked in /etc/dnf/dnf.conf")
return
value.remove("kernel*")
conf_parser["main"]["exclude"] = ", ".join(value)
shutil.copyfile("/etc/dnf/dnf.conf", "/etc/dnf/dnf.conf_backup")
try:
with open("/etc/dnf/dnf.conf", mode="w") as dnf_conf_file:
conf_parser.write(dnf_conf_file)
except Exception as e:
logger.error(
"Failed to update /etc/dnf/dnf.conf due to {}. Restoring config file from backup.".format(
e
)
)
shutil.copyfile("/etc/dnf/dnf.conf_backup", "/etc/dnf/dnf.conf")
raise e
else:
logger.info("Kernel updates unblocked in /etc/dnf/dnf.conf")