fix: clean ubuntu modules package
This commit is contained in:
48
distro/ubuntu/ubuntu.go
Normal file
48
distro/ubuntu/ubuntu.go
Normal file
@ -0,0 +1,48 @@
|
||||
package ubuntu
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"code.dumpstack.io/tools/out-of-tree/config"
|
||||
)
|
||||
|
||||
func Envs(km config.KernelMask) (envs []string) {
|
||||
envs = append(envs, "DEBIAN_FRONTEND=noninteractive")
|
||||
return
|
||||
}
|
||||
|
||||
func Runs(km config.KernelMask) (commands []string) {
|
||||
cmdf := func(f string, s ...interface{}) {
|
||||
commands = append(commands, fmt.Sprintf(f, s...))
|
||||
}
|
||||
|
||||
if km.DistroRelease < "14.04" {
|
||||
cmdf("sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/' " +
|
||||
"/etc/apt/sources.list")
|
||||
}
|
||||
|
||||
cmdf("apt-get update")
|
||||
cmdf("apt-get install -y build-essential libelf-dev")
|
||||
cmdf("apt-get install -y wget git")
|
||||
|
||||
if km.DistroRelease < "14.04" {
|
||||
return
|
||||
}
|
||||
|
||||
cmdf("apt-get install -y libseccomp-dev")
|
||||
|
||||
// Install and remove a single kernel and headers.
|
||||
// This ensures that all dependencies are cached.
|
||||
|
||||
cmdf("export TMP_HEADERS=$(apt-cache search " +
|
||||
"--names-only '^linux-headers-[0-9\\.\\-]*-generic' " +
|
||||
"| 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/')")
|
||||
|
||||
cmdf("apt-get install -y $TMP_HEADERS $TMP_KERNEL $TMP_MODULES")
|
||||
cmdf("apt-get remove -y $TMP_HEADERS $TMP_KERNEL $TMP_MODULES")
|
||||
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user