From 4eed03ec2a789c3cc276c5b9bdf8c9f78922e842 Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Thu, 18 May 2023 10:50:24 +0000 Subject: [PATCH] fix: install/remove kernel in one layer --- distro/centos/centos.go | 17 +++++++++-------- distro/ubuntu/ubuntu.go | 14 ++++++++------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/distro/centos/centos.go b/distro/centos/centos.go index 8b7d430..cca937e 100644 --- a/distro/centos/centos.go +++ b/distro/centos/centos.go @@ -85,16 +85,17 @@ func Runs(km config.KernelMask) (commands []string) { // Install and remove a single kernel and headers. // This ensures that all dependencies are cached. - cmdf("export TMP_HEADERS=$(yum search kernel-devel --showduplicates " + - "| grep '^kernel-devel' | cut -d ' ' -f 1 | head -n 1)") + cmd := "export HEADERS=$(yum search kernel-devel --showduplicates " + + "| grep '^kernel-devel' | cut -d ' ' -f 1 | head -n 1)" - cmdf("export TMP_KERNEL=$(echo $TMP_HEADERS | sed 's/-devel//')") - cmdf("export TMP_MODULES=$(echo $TMP_HEADERS | sed 's/-devel/-modules/')") - cmdf("export TMP_CORE=$(echo $TMP_HEADERS | sed 's/-devel/-core/')") + cmd += " KERNEL=$(echo $HEADERS | sed 's/-devel//')" + cmd += " MODULES=$(echo $HEADERS | sed 's/-devel/-modules/')" + cmd += " CORE=$(echo $HEADERS | sed 's/-devel/-core/')" - cmdf("yum -y install $TMP_KERNEL $TMP_HEADERS") - cmdf("yum -y remove %s $TMP_KERNEL $TMP_HEADERS $TMP_MODULES $TMP_CORE", - flags) + cmd += " && yum -y install $KERNEL $HEADERS" + cmd += " && yum -y remove %s $KERNEL $HEADERS $MODULES $CORE" + + cmdf(cmd, flags) return } diff --git a/distro/ubuntu/ubuntu.go b/distro/ubuntu/ubuntu.go index db5f563..5e1d37b 100644 --- a/distro/ubuntu/ubuntu.go +++ b/distro/ubuntu/ubuntu.go @@ -34,15 +34,17 @@ func Runs(km config.KernelMask) (commands []string) { // Install and remove a single kernel and headers. // This ensures that all dependencies are cached. - cmdf("export TMP_HEADERS=$(apt-cache search " + + cmd := "export HEADERS=$(apt-cache search " + "--names-only '^linux-headers-[0-9\\.\\-]*-generic' " + - "| awk '{ print $1 }' | head -n 1)") + "| awk '{ print $1 }' | head -n 1)" - cmdf("export TMP_KERNEL=$(echo $TMP_HEADERS | sed 's/headers/image/')") - cmdf("export TMP_MODULES=$(echo $TMP_HEADERS | sed 's/headers/modules/')") + cmd += " KERNEL=$(echo $HEADERS | sed 's/headers/image/')" + cmd += " MODULES=$(echo $HEADERS | sed 's/headers/modules/')" - cmdf("apt-get install -y $TMP_HEADERS $TMP_KERNEL $TMP_MODULES") - cmdf("apt-get remove -y $TMP_HEADERS $TMP_KERNEL $TMP_MODULES") + cmd += " && apt-get install -y $HEADERS $KERNEL $MODULES" + cmd += " && apt-get remove -y $HEADERS $KERNEL $MODULES" + + cmdf(cmd) return }