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 // Install .deb files
if !deb_files.is_empty() { if !deb_files.is_empty() || !package_names.is_empty() {
log::info!("Installing .deb files: {:?}", deb_files); 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"); let mut cmd = ctx.command("apt-get");
cmd.envs(env.clone()) cmd.envs(env.clone())
.arg("-y") .arg("-y")
.arg("--allow-downgrades") .arg("--allow-downgrades")
.arg("install") .arg("install");
.args(&package_names); // 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()?; let status = cmd.status()?;
if !status.success() { 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());
} }
} }