deb: fix injection of .deb packages with apt-get
All checks were successful
CI / build (push) Successful in 9m5s
CI / snap (push) Successful in 3m56s

This commit is contained in:
2026-04-04 12:41:52 +02:00
parent d83174c980
commit 73511c258b

View File

@@ -275,29 +275,24 @@ fn install_injected_packages(
}
}
// Install .deb files using dpkg -i
if !deb_files.is_empty() {
// Install .deb files
if !deb_files.is_empty() || !package_names.is_empty() {
log::info!("Installing .deb files: {:?}", deb_files);
let mut cmd = ctx.command("dpkg");
cmd.envs(env.clone()).arg("-i").args(&deb_files);
let status = cmd.status()?;
if !status.success() {
return Err(format!("Could not install .deb files: {:?}", deb_files).into());
}
}
// Install package names using apt-get
if !package_names.is_empty() {
log::info!("Installing packages from archive: {:?}", package_names);
let mut cmd = ctx.command("apt-get");
cmd.envs(env.clone())
.arg("-y")
.arg("--allow-downgrades")
.arg("install")
.args(&package_names);
.arg("install");
// Add the .deb file paths with ./ prefix for apt to recognize them as local files
for deb_path in &deb_files {
cmd.arg(format!("./{}", deb_path.trim_start_matches('/')));
}
if !package_names.is_empty() {
cmd.args(&package_names);
}
let status = cmd.status()?;
if !status.success() {
return Err(format!("Could not install injected packages: {:?}", package_names).into());
return Err(format!("Could not install injected packages: {:?}", deb_files).into());
}
}