Tôi muốn một phương thức shell shell để kiểm tra / báo cáo nếu một gói được cài đặt. Tôi không cần chi tiết, chỉ trả về boolean để thiết lập luồng logic. Tôi đã xem Tìm nếu một gói được cài đặt , nhưng dpkg
trả về đầu ra phức tạp và định dạng của nó thay đổi tùy thuộc vào việc gói đó nằm trong kho Debian hay trong Ubuntu PPA.
Tôi thấy rằng apt-cache
đó là một công việc khá tốt và tôi đã đưa ra phương pháp này:
is_installed=0
test_installed=( `apt-cache policy package-name | grep "Installed:" ` )
[ ! "${test_installed[1]}" == "(none)" ] && is_installed=1
Có ai biết một cách đơn giản hơn hoặc trực tiếp hơn?
dpkg-query -l "$package" | grep -q ^.i
thường là đủ (và dễ nhớ hơn).