我們如何知道 Linux 中安裝了哪些應用程序?
我試圖在 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