From 7b9404a0588bc9fd35ab86768a01611bf43889a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=28=D0=A5?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D1=8B=D1=87=D0=AA=29=20=D0=A5=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= Date: Sun, 21 Sep 2025 12:36:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B5=D0=B9=20=D0=BD=D0=B0=20debian-based?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/manager/apt.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/manager/apt.go b/internal/manager/apt.go index d8cbb72..b3ee7fe 100644 --- a/internal/manager/apt.go +++ b/internal/manager/apt.go @@ -140,16 +140,19 @@ func (a *APT) ListInstalled(opts *Opts) (map[string]string, error) { } func (a *APT) IsInstalled(pkg string) (bool, error) { - cmd := exec.Command("dpkg-query", "-l", pkg) + cmd := exec.Command("dpkg-query", "-f", "${Status}", "-W", pkg) output, err := cmd.CombinedOutput() if err != nil { if exitErr, ok := err.(*exec.ExitError); ok { - // Exit code 1 means the package is not installed + // Код выхода 1 означает что пакет не найден if exitErr.ExitCode() == 1 { return false, nil } } return false, fmt.Errorf("apt: isinstalled: %w, output: %s", err, output) } - return true, nil + + status := strings.TrimSpace(string(output)) + // Проверяем что пакет действительно установлен (статус должен содержать "install ok installed") + return strings.Contains(status, "install ok installed"), nil }