首頁  >  文章  >  運維  >  linux apt是什麼

linux apt是什麼

青灯夜游
青灯夜游原創
2023-04-10 17:11:054203瀏覽

APT是Linux系統下的軟體包管理工具,可以自動下載、設定、安裝二進位或原始碼格式的軟體包;大部分apt指令必須以具有sudo權限 的使用者身分執行。 APT最早被設計為dpkg的前端,用於處理deb格式的軟體包;現在經過APT-RPM組織修改,APT已經可以安裝在支援RPM的系統管理RPM包。

linux apt是什麼

本教學操作環境:Ubuntu 21.04系統、Dell G3電腦。

如果我們想要透過Linux 命令列安裝某個軟體,直接在命令列下輸入以下命令即可:

sudo apt-get update
sudo apt-get install 

這種安裝方式是透過 apt 工具實現安裝的,那apt 到底是什麼呢?

一、APT 工具

        APT 全名Advanced Packaging T#ool ,即進階包裝工具,是Linux 系統下的一個軟體包管理工具。 APT 可以自動下載、設定、安裝二進位或原始碼格式的軟體包,因此簡化了 Unix 系統上管理軟體的流程。 Apt 可用來:

  • 安裝應用程式

  • #移除應用程式

  • ##保持應用程式為最新的

  • 還有更多功能…

        APT 最早設計為dpkg(Debian Package)的前端,用於處理deb 格式的軟體包。現在經過 APT-RPM 組織修改,APT 已經可以安裝在支援 RPM 的系統管理 RPM 套件。這個套件管理器包含以 apt- 開頭的多個工具,如 

apt-get    apt-cache    apt-cdrom  等。

        簡單來說,apt 就是一個

命令列實用程式,用於 安裝、更新、管理、刪除、尋找… 軟體包。大部分 apt 指令必須以具有 sudo 權限 的使用者身分執行。

  • apt 適用於Ubuntu、Debian 和相關Unix 發行版,不適用於redhat、centos…

二、APT 運作原理

        APT 是一個

客戶/伺服器系統。在伺服器上先複製所有的deb 套件(deb - Debian 軟體包格式的檔案副檔名);然後使用APT 的分析工具- genbasedir,根據每個deb 套件的封包資訊對所有的deb 套件進行分析,並將分析結果記錄在一個檔案- DEB 索引清單。 APT 伺服器的 DEB 索引清單置於 base 資料夾內。一旦 APT 伺服器內的 deb套件 有所變動,請務必使用 genbasedir 產生新的 DEB 索引清單。客戶端在進行安裝或升級時先查詢 DEB 索引清單,以便取得所有具有依賴關係的軟體包,並一同下載到客戶端以便安裝。

        當客戶需要安裝、升級或刪除某個軟體包時,客戶端電腦取得 DEB 索引清單的壓縮檔案後,將其解壓縮置於 /var/state/apt/lists/ 目錄下。而客戶端使用apt-get install 或apt-get upgrade 指令時,就會將這個資料夾內的資料和客戶端電腦內的DEB 資料庫進行比對,知道哪些DEB 是已安裝、未安裝或是可升級的。

        客戶端需要

定期從伺服器上下載一個軟體包清單,因為apt 工具實際上是在可用軟體包的資料庫上工作。當執行安裝操作時apt-get 工具會在本地可用軟體包資料庫中搜尋目標軟體的相關信息,並根據這些資訊在相關的伺服器上下載軟體並安裝。所以在安裝之前通常都會透過  sudo apt-get update  更新一下本地的軟體包資料庫。

三、APT 指令

(1)apt-get 常用指令#

##升級sudo apt-get 已安裝的軟體包sudo apt-get remove已安裝的軟體包(包括與被移除軟體包有依賴關係的軟體包,但不包含軟體包的設定檔)#sudo apt-get autoremove之前被其他軟體包依賴,但現在不再被使用的軟體包sudo apt-get purge軟體包(包括軟體包的#sudo apt-get clean下載到本機的已安裝的軟體包,預設儲存在/var/cache/apt/archives/sudo apt-get listsudo apt-get search軟體包sudo apt-get show軟體包具體資訊,如:版本號碼、安裝大小、依賴關係等(2)apt-get 常用參數
指令 說明
#sudo apt-get update 更新本地軟體包資料庫
#sudo apt-get install #安裝軟體包
##sudo apt-get --reinstall install #重新安裝軟體包,如:系統被破壞、一些錯誤的配置導致軟體無法正常工作…
sudo apt-get upgrade 所有已安裝的軟體包
full-upgrade##完全升級
#移除
#移除
完全移除設定檔
移除
產生軟體包清單
#搜尋
顯示


參數說明-y是否安裝軟體包的選項,在一些自動化安裝腳本中非常有用-s安裝#-q安裝方式,指定多個-f修復下載
自動回應
模擬
安靜 q-q=#(#表示數字,用於設定靜默等級),在不想要安裝過程中螢幕輸出過多內容時非常有用
損壞的依賴關係
-d
######################################################################################################################,不安裝##################--reinstall################重新安裝###已經安裝但可能有問題的軟體包##################--install-suggests############同時安裝APT 給出的###建議安裝## #的軟體包#############

四、使用 apt 命令管理基于 Debian 和 Ubuntu 的 Linux 发行版中的包

我在本教程中使用 Ubuntu 21.04,但你可以使用任何其他基于 Debian/Ubuntu 的 Linux 发行版,例如 Linux Mint、elementary OS、Linux Lite 等。

4.1、使用 apt 更新包数据库

apt 作用于可用包的数据库。如果数据库没有更新,系统将不知道是否有可更新的软件包可用。这就是为什么在任何 Linux 系统中进行了全新安装后,首先要更新存储库。

更新包数据库需要超级用户权限,因此您需要使用sudo

sudo apt update

运行此命令看到从各种服务器检索的包信息:

linux apt是什麼
在此处看到三种类型的行:HitGetIgn。基本上这些是:

  • 命中(Hit):包版本与之前的版本没有变化。
  • 忽略(Ign):包被忽略。要么是包版本太新,它甚至懒得检查,要么在检索文件时出错,但错误微不足道,因此被忽略。
  • 获取(Get):有一个新版本可用。它将下载有关版本的信息(而不是包本身)。您可以在上面的屏幕截图中看到带有“获取(Get)”行的下载信息(大小以kb为单位)。

4.2、使用 apt 升级已安装的软件包

更新软件包数据库后,就可以升级已安装的软件包。最方便的方法是升级所有具有可用更新的软件包。可以简单地使用以下命令:

sudo apt upgrade

这将显示将要升级的所有软件包的数量和种类。

linux apt是什麼linux apt是什麼

还有另一种方法可以使用以下命令提供完整升级:

sudo apt full-upgrade

full-upgradeupgrade 的工作原理相同,只是如果系统升级需要删除系统上已安装的软件包,它会这样做。然而,正常的升级命令不会这样做。

4.3、apt update 和 apt upgrade 的区别

虽然听起来像当执行 apt update 时,它会更新软件包,你将获得最新版本的软件包。但事实并非如此。apt update 只更新包的数据库

例如,如果你安装了 XYZ 包 1.3 版,则在 apt 更新后,数据库将知道有更新的 1.4 版可用。当你在 apt update 之后执行 apt upgrade 时,它会将已安装的软件包升级(或更新)到较新的版本。

这就是为什么使用此命令更新 Ubuntu 系统最快、最方便的原因:

sudo apt update && sudo apt upgrade -y

4.4、使用 apt 安装新软件包

如果已经知道包的名称,则可以使用以下命令进行安装:

sudo apt install <package_name></package_name>

只需将 <package_name></package_name> 替换为所需的包。假设你想安装mplayer,你可以简单地使用下面的命令:

sudo apt install mplayer

linux apt是什麼linux apt是什麼

可以使用自动完成功能。当不确定确切的包名称时,可以输入几个字母并按Tab,它会建议所有以这些字母开头的可用的包。例如:

注意是按Tab,而不是Enter!

使用自动完成功能查找具有给定名称的包:
linux apt是什麼

4.5、使用 apt 安装多个软件包

不必一次只安装一个软件包。可以通过同时提供多个软件包名称来一次安装多个软件包:

sudo apt install <package_1> <package_2> <package_3></package_3></package_2></package_1>

4.6、如果在已安装的软件包上运行 apt install 会怎样

这将只查看数据库,如果找到更新的版本,它会将已安装的软件包升级到较新的软件包。因此,使用它不会造成任何伤害,除非你不希望它升级。

linux apt是什麼

4.7、在不升级的情况下安装软件包

如果由于某种原因你想安装一个包,但不想升级,如果它已经安装了。在这种情况下,你可以通过以下方式使用选项 –no-upgrade

sudo apt install <package_name> --no-upgrade</package_name>

linux apt是什麼

4.8、只升级软件包,而不是安装它

如果你只想升级软件包但不想安装它(如果尚未安装),则可以使用以下命令执行此操作:

sudo apt install <package_name> --only-upgrade</package_name>

linux apt是什麼

4.9、安装特定版本的应用程序

默认情况下,将为应用程序安装存储库中可用的最新版本。但是如果不想安装最新版本,可以指定版本号。你需要知道要安装的确切版本号。

只需在包名称后添加 =version 即可。

sudo apt install <package_name>=<version_number></version_number></package_name>

4.10、使用 apt 删除已安装的软件包

删除软件包就像安装它们一样简单。只需使用以下命令:

sudo apt remove <package_name></package_name>

linux apt是什麼
卸载软件包的另一种方法是使用清除。该命令的使用方式如下:

sudo apt purge <package_name></package_name>

apt remove 和 apt purge 的区别

  • apt remove只是删除包的二进制文件。它留下了残留的配置文件。
  • apt purge 删除与包相关的所有内容,包括配置文件。

如果你习惯于apt remove删除特定软件然后重新安装它,你的软件将具有相同的配置文件。当然,再次安装时会要求你覆盖现有的配置文件。

当你弄乱了程序的配置,你想从系统中完全清除它的痕迹再重新开始,清除会很有用。也可以在已删除的包上使用apt purge

linux apt是什麼通常,apt remove卸载软件包绰绰有余。

4.11、搜索packages

这不是搜索包的最好方式。但是当你在寻找一些特定的库时,这很有用。只需将以下命令与所需的搜索词一起使用,就可以找到包含搜索词的所有包。

apt search <search></search>

linux apt是什麼
linux apt是什麼

4.12、查看package的内容

如果你想在安装或删除软件包之前了解有关软件包的更多信息,可以使用以下命令:

apt show <package_name></package_name>

这将显示有关给定包的信息,例如其依赖项、安装和下载大小、包的不同来源、包内容的描述等:

linux apt是什麼

4.13、列出可升级和已安装的版本

apt 命令有一个名为 list 的新选项。使用此命令,可以查看所有准备升级的较新版本的软件包:

apt list --upgradable

linux apt是什麼
还可以使用--installed选项查看系统上所有已安装的软件包:

apt list --installed

linux apt是什麼

还有第三个选项,称为 –all-versions。它将列出可用于你的系统的所有软件包:

apt list --all-versions

linux apt是什麼
linux apt是什麼

4.14、使用 apt 清理系统

与 apt-get 不同,这里没有 clean 和 autoclean 命令。但是仍然可以使用 autoremove 选项释放一些磁盘空间:

sudo apt autoremove

安装软件时会自动安装一些满足依赖关系的库和包。如果软件包被删除,这些自动安装的库和包虽然没有用,但仍会保留在系统中。可以使用此命令清除掉。

linux apt是什麼

相关推荐:《Linux视频教程

以上是linux apt是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn