使用apt的Linux軟體包管理

語言: CN / TW / HK

在Linux上,軟體包管理器幫助你處理計算機上軟體的更新、解除安裝、故障排除等。Seth Kenlon寫了關於dnf ,這個命令列軟體包管理工具用於在RHEL、CentOS、Fedora、Mageia、OpenMandriva和其他Linux發行版中安裝軟體。

蝶變和基於蝶變的發行版,如MX Linux、Deepin、Ubuntu--以及基於Ubuntu的發行版,如Linux Mint和Pop!_OS--有apt ,一個 "類似但不同 "的工具。在這篇文章中,我將按照Seth的例子--但用apt--來告訴你如何使用它。

在我開始之前,我想提到四個與apt 有關的安裝軟體的工具。

  • Synaptic是一個基於GTK+的圖形使用者介面(GUI)前端,用於apt
  • Aptitude是一個基於Ncurses的全屏命令列前端,用於apt
  • 還有apt-getapt-cache ,以及apt 的其他前身。
  • Dpkg是 "幕後 "的軟體包管理器apt ,用來完成繁重的工作。

還有其他的打包系統,比如FlatpakSnap,你可能會在Debian和基於Debian的系統上遇到,但我不打算在這裡討論它們。還有一些應用程式 "商店",如GNOME軟體,與apt 和其他打包技術重疊;同樣,我不打算在這裡討論它們。最後,還有一些Linux發行版,如ArchGentoo,既不使用dnf ,也不使用apt ,我也不打算在這裡討論它們

在這裡我不打算討論所有的事情,你可能會想知道apt 處理哪些微小的軟體子集。好吧,在我的Ubuntu 20.04上,apt 讓我可以訪問69,371個軟體包,從0ad 古代戰爭的實時戰略遊戲到zzuf 透明應用程式模糊器。一點也不差。

用apt尋找軟體

使用軟體包管理器(如apt )的第一步是找到一個感興趣的軟體包。Seth的dnf 文章以Cockpit伺服器管理應用程式為例,所以我也會這樣做。

$ apt search cockpit Sorting... Done Full Text Search... Done 389-ds/hirsute,hirsute 1.4.4.11-1 all 389 Directory Server suite - metapackage cockpit/hirsute,hirsute 238-1 all Web Console for Linux servers ... $

上面的第二個軟體包就是你要找的那個(就是以cockpit/hirsute 開頭的那一行)。如果你決定要安裝它,請輸入。

$ sudo apt install cockpit

apt 將負責安裝Cockpit和所有使其工作所需的零碎部分或_依賴項_。有時這就是所需的一切,有時則不然。有可能在決定你是否真的想安裝這個應用程式時,掌握更多的資訊會很有用。

要了解一個軟體包的更多資訊,可以使用apt show 命令。

$ apt show cockpit Package: cockpit Version: 238-1 Priority: optional Section: universe/admin Origin: Ubuntu Maintainer: Ubuntu Developers Original-Maintainer: Utopia Maintenance Team Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 88.1 kB Depends: cockpit-bridge (>= 238-1), cockpit-ws (>= 238-1), cockpit-system (>= 238-1) Recommends: cockpit-storaged (>= 238-1), cockpit-networkmanager (>= 238-1), cockpit-packagekit (>= 238-1) Suggests: cockpit-doc (>= 238-1), cockpit-pcp (>= 238-1), cockpit-machines (>= 238-1), xdg-utils Homepage: https://cockpit-project.org/ Download-Size: 21.3 kB APT-Sources: http://ca.archive.ubuntu.com/ubuntu hirsute/universe amd64 Packages Description: Web Console for Linux servers The Cockpit Web Console enables users to administer GNU/Linux servers using a web browser. . It offers network configuration, log inspection, diagnostic reports, SELinux troubleshooting, interactive command-line sessions, and more. $

特別是注意Description 欄位,它告訴你更多關於該應用程式的資訊。Depends 欄位說明了還必須安裝什麼,Recommends 顯示了與它一起被推薦的其他合作元件(如果有)。Homepage 欄位提供了一個URL,以防你需要更多資訊。

什麼軟體包提供了一個檔案?

有時你不知道軟體包的名稱,但你知道一個檔案必須在一個軟體包中。賽斯提供了一個例子,即qmake-qt5 工具。使用apt search 並不能找到它。

$ apt search qmake-qt5 Sorting... Done Full Text Search... Done $

然而,一個相關的命令,apt-file ,將探索軟體包內部。

$ apt-file search qmake-qt5 qt5-qmake-bin: /usr/share/man/man1/qmake-qt5.1.gz $

這就出現了一個qmake-qt5 的手冊頁,它是一個叫做qt5-qmake-bin 的包的一部分。請注意,這個軟體包的名稱與qmakeqt5 部分相反。

一個軟體包中包括哪些檔案?

那個方便的apt-file 命令也會告訴你哪些檔案被包含在一個給定的包中。比如說。

$ apt-file list cockpit cockpit: /usr/share/doc/cockpit/TODO.Debian cockpit: /usr/share/doc/cockpit/changelog.Debian.gz cockpit: /usr/share/doc/cockpit/copyright cockpit: /usr/share/man/man1/cockpit.1.gz cockpit: /usr/share/metainfo/cockpit.appdata.xml cockpit: /usr/share/pixmaps/cockpit.png $

注意,這與apt show 命令所提供的資訊不同,後者列出了軟體包的依賴關係(必須安裝的其他軟體包)。

你也可以用apt 刪除軟體包。例如,要刪除apt-file 應用程式。

$ sudo apt purge apt-file

注意,超級使用者必須執行apt 來安裝或刪除應用程式。

刪除一個軟體包並不會自動刪除apt 沿途安裝的所有依賴項。然而,要進行這一點整理是很容易的。

$ sudo apt autoremove

瞭解 apt

正如Seth所寫的,"你對你的軟體包管理器的工作方式瞭解得越多,你在必要時安裝和查詢應用程式就越容易"。

即使你不是一個經常使用apt ,當你在安裝或刪除軟體包時需要在命令列下工作時,瞭解它也是很有用的(例如,在遠端伺服器上或在遵循一些有幫助的人釋出的方法時)。你可能還需要了解一下Dkpg(上面提到的);例如,一些軟體建立者提供了一個裸露的.pkg 檔案。

我發現Synaptic軟體包管理器在我的桌面上是一個非常有用的工具,但我也在我為各種目的維護的少數伺服器上使用apt

下載我們的apt 小抄,以習慣這個命令並嘗試一些新的技巧。一旦你這樣做了,你可能會發現很難再使用其他東西了。