Linux

我們如何知道 Linux 中安裝了哪些應用程序?

  • June 5, 2018

我試圖在 Linux 中理解以下內容。在 Windows 中,我們有執行或“啟動”的服務。當我們安裝應用程序時,它可以作為服務安裝,以便它自動啟動。

但是如果應用程序沒有作為服務安裝,我們通常可以在開始->程序菜單中看到它。所以我們知道安裝了哪些應用程序。

在 Linux 中等價物是什麼?我了解等效服務位於/etc/init服務啟動/停止的位置。但我假設如果我安裝一個包,它不一定會創建一個啟動腳本,/etc/init對吧?

那麼,如何知道 Linux 中已安裝和可用的內容(就像我們在 Windows 中的Start -> Programs一樣)?

**注意:**我問的是 CLI 模式。我想在桌面版本中可以看到各種菜單中的相關圖示(例如在 Kubuntu 中的Application -> Internet -> Firefox)。

許多問題。讓我們拿幾個,看看我們能不能把事情弄清楚。

第一季度

我了解等效服務位於服務啟動/停止的 /etc/init 中。但是我假設如果我安裝了一個包,它不一定會在 /etc/init 中創建一個啟動腳本,對吧?

當您在 Linux 發行版上安裝應用程序時(使用 dpkg/APT、RPM/YUM、pacman 等軟體包管理器的發行版)不可以,作為正在安裝的軟體的一部分,軟體包管理器具有類似於以下的腳本“功能” Windows中可以添加腳本、創建腳本、將使用者添加到系統以及在安裝後啟動服務的那些。

第二季度

那麼,如何知道 Linux 中已安裝和可用的內容(就像我們在 Windows 中從“開始”->“程序”一樣)?

簡單的。我上面提到的相同包管理器具有可用於查詢系統的命令,以了解已安裝的應用程序、與這些包相關的文件等。

例子

在基於 Red Hat 的發行版上,您可以使用該命令rpm查找有關已安裝軟體包的資訊。

$ rpm -aq | head -5
libgssglue-0.4-2.fc19.x86_64
pygame-1.9.1-13.fc19.x86_64
perl-HTML-Parser-3.71-1.fc19.x86_64
ibus-libs-1.5.4-2.fc19.x86_64
libnl-1.1-17.fc19.x86_64

找出哪些文件是包的一部分:

$ rpm -ql pygame | head -5
/usr/lib64/python2.7/site-packages/pygame
/usr/lib64/python2.7/site-packages/pygame-1.9.1release-py2.7.egg-info
/usr/lib64/python2.7/site-packages/pygame/LGPL
/usr/lib64/python2.7/site-packages/pygame/__init__.py
/usr/lib64/python2.7/site-packages/pygame/__init__.pyc

它如何只顯示包(應用程序)中包含的執行檔?大多數情況下,執行檔安裝在 Linux 上的某些位置,/usr/bin或者/bin是 2 個這樣的目錄。我通常像這樣搜尋 RPM 包:

$ rpm -ql pygtk2 | grep "/bin"
/usr/bin/pygtk-demo

$ rpm -ql httpd | grep -E "bin/|sbin/" | head -10
/usr/sbin/apachectl
/usr/sbin/fcgistarter
/usr/sbin/htcacheclean
/usr/sbin/httpd
/usr/sbin/rotatelogs
/usr/sbin/suexec

引用自:https://unix.stackexchange.com/questions/113573