如何确定是否安装了特定程序?

Bla*_*ock 63 package-management command-line

我想知道一个程序 - 例如 Chromium - 是否安装在 Ubuntu 上。手动或作为一个包。

如何知道程序是否通过命令行安装?

Oli*_*Oli 62

而且总是有apt-cache policy <package-name>(不需要 sudo)。

未安装:

oli@bert:/$ apt-cache policy gnuift
gnuift:
  Installed: (none)
  Candidate: 0.1.14-11
  Version table:
     0.1.14-11 0
        500 http://archive.ubuntu.com/ubuntu/ oneiric/universe amd64 Packages
Run Code Online (Sandbox Code Playgroud)

安装:

oli@bert:/$ apt-cache policy firefox
firefox:
  Installed: 8.0+build1-0ubuntu0.11.10.3
  Candidate: 8.0+build1-0ubuntu0.11.10.3
  Version table:
 *** 8.0+build1-0ubuntu0.11.10.3 0
        500 http://archive.ubuntu.com/ubuntu/ oneiric-updates/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu/ oneiric-security/main amd64 Packages
        100 /var/lib/dpkg/status
     7.0.1+build1+nobinonly-0ubuntu2 0
        500 http://archive.ubuntu.com/ubuntu/ oneiric/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)

或者dpkgdpkg -l | grep -E '^ii' | grep <package name>。未安装时,它不会显示输出。当它是时,它会显示如下内容:

oli@bert:~$ dpkg -l | grep -E '^ii' | grep firefox
ii  firefox                                                     8.0+build1-0ubuntu0.11.10.3                            Safe and easy web browser from Mozilla
ii  firefox-branding                                            8.0+build1-0ubuntu0.11.10.3                            Safe and easy web browser from Mozilla - transitional package
ii  firefox-globalmenu                                          8.0+build1-0ubuntu0.11.10.3                            Unity appmenu integration for Firefox
ii  firefox-gnome-support                                       8.0+build1-0ubuntu0.11.10.3                            Safe and easy web browser from Mozilla - GNOME support
ii  firefox-locale-en                                           8.0+build1-0ubuntu0.11.10.3                            English language pack for Firefox
Run Code Online (Sandbox Code Playgroud)

这显然是一个更模糊的搜索,但如果您不确定要查找哪个包,则很方便。

对于手动安装的东西...

有点难,但如果它们在当前路径上,您可以运行它们。这是一个任务,所以我宁愿运行:

oli@bert:/$ which chromium-browser
/usr/bin/chromium-browser
Run Code Online (Sandbox Code Playgroud)

和:

oli@bert:/$ which gnuift
# returns nothing
Run Code Online (Sandbox Code Playgroud)

哪个更好?

这取决于用户的理智。没有什么可以阻止有人安装chromium-browser不是 Chromium 的东西。他们甚至可以错误地打包并安装它。两种方法都不能 100% 确定。

但是假设所有者是理智的 - 包裹应该对大多数人来说已经足够了。


Ach*_*chu 12

例如, Chromiumchromium-browser如果安装了在终端中运行,它将被打开。如果不是,你会得到

chromium-browser: command not found 
Run Code Online (Sandbox Code Playgroud)

检查软件包是否也安装

dpkg -l | grep chromium-browser
Run Code Online (Sandbox Code Playgroud)

如果安装了,你会得到这样的:

在此处输入图片说明

要列出所有已安装的软件包,只需使用

dpkg -l
Run Code Online (Sandbox Code Playgroud)

或者

使用 Ubuntu 软件中心类型 chromium

如果您看到这样的绿色图标:

在此处输入图片说明

这意味着它已安装:)