目次
# 2. APT の仕組み" > # 2. APT の仕組み

Linux aptとは何ですか

Apr 10, 2023 pm 05:11 PM
linux

APT は、Linux システムでのソフトウェア パッケージ管理ツールで、バイナリまたはソース コード形式でソフトウェア パッケージを自動的にダウンロード、構成、インストールできます。ほとんどの apt コマンドは、sudo 権限を持つユーザーとして実行する必要があります。 APT は当初、deb 形式のソフトウェア パッケージを処理するために使用される dpkg のフロント エンドとして設計されましたが、APT-RPM 組織による修正を経て、APT は RPM パッケージを管理するために RPM をサポートするシステムにインストールできるようになりました。

Linux aptとは何ですか

このチュートリアルの動作環境: Ubuntu 21.04 システム、Dell G3 コンピューター。

Linux コマンド ラインから特定のソフトウェアをインストールする場合は、次のコマンドをコマンド ラインに直接入力するだけです:

sudo apt-get update
sudo apt-get install 
ログイン後にコピー

このインストール方法は apt ツールを使用します インストールを実現するには、apt とは具体的に何でしょうか?

1. APT ツール

APTAdvanced Packaging T# の完全名##ool 、つまり Advanced Packaging Tool は、Linux システムにおける ソフトウェア パッケージ管理ツール です。 APT は、ソフトウェア パッケージをバイナリまたはソース コード形式で自動的にダウンロード、構成、インストールすることにより、Unix システム上のソフトウェア管理プロセスを簡素化します。 Apt は次の目的で使用できます。

  • アプリケーションのインストール

  • アプリケーションの削除

  • アプリケーションを保持する最新のアプリケーションとして

  • #さらに多くの機能があります...

APT は最初、dpkg (Debian パッケージ) のフロントエンドとして設計されました。 deb形式のソフトウェアパッケージを処理するために使用されます。 APT-RPM 組織による修正後、APT をインストールして、RPM をサポートするシステム上の RPM パッケージを管理できるようになりました。このパッケージ マネージャーには、

apt-get apt-cache apt-cdrom など、apt- で始まる複数のツールが含まれています。

簡単に言えば、APT は

# のインストール、更新、管理、削除、検索を行う コマンド ライン ユーティリティ です ... ソフトウェアパッケージ 。ほとんどの apt コマンドは、sudo 権限 を持つユーザーとして実行する必要があります。

  • apt は Ubuntu、Debian、および関連する Unix ディストリビューションに適していますが、redhat、centos には適していません...

# 2. APT の仕組み

APT は

クライアント/サーバー システムです。まず、サーバー上のすべての deb パッケージ (deb - Debian ソフトウェア パッケージ形式のファイル拡張子) をコピーし、次に APT の分析ツール - genbasedir を使用して、各 deb パッケージのヘッダー情報に基づいてすべての deb パッケージを分析し、結果をファイルに記録します。ファイル - DEB インデックス リスト 。 APT サーバーの DEB インデックス リストはベース フォルダーに配置されます。 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 を使用してローカル ソフトウェア パッケージ データベースを更新します。

######3. APT コマンド############ (1) apt-get 共通コマンド#######コマンド説明##sudo apt-get Update##sudo apt-get install--reinstall installupgradeインストールされたファイルを削除しますローカルエリアにダウンロードされたソフトウェアパッケージは、デフォルトでは /var/cache/apt/archives/sudo apt-get search検索sudo apt-get パッケージ固有の情報を表示します。 (2) apt-get 共通パラメータ#-y
update ローカル パッケージデータベース
#ソフトウェア パッケージをインストールします ##sudo apt-get
システムが破損している、構成が正しくないなど、 ソフトウェア パッケージを再インストールします。ソフトウェアが正しく動作しなくなる原因となります... sudo apt-get
Upgrade インストールされているすべてのパッケージ ##sudo apt-get full-upgrade
フル アップグレードインストール済みソフトウェア パッケージ ##sudo apt-get remove
削除インストールされたソフトウェア パッケージ (削除されたソフトウェア パッケージとの依存関係があるが、ソフトウェア パッケージの構成ファイルは含まれないソフトウェア パッケージを含む) sudo apt- get autoremove
Remove以前は他のソフトウェア パッケージに依存していましたが、現在は使用されていません ソフトウェア パッケージ sudo apt-get purge
パッケージ (パッケージの ## を含む) を完全に削除します。 # 設定ファイル ) ##sudo apt-get clean
## に保存されます。 #パッケージの生成 list
ソフトウェア パッケージ
show < ;ソフトウェア名>#バージョン番号、インストール サイズ、依存関係などの
##パラメータ##説明

自動応答
ソフトウェア パッケージをインストールするオプションは非常に便利です一部の自動インストール スクリプトで

シミュレーションインストール インストール方法、複数の ##q# を指定します## または -fすでにインストールされていますが、問題がある可能性があります ソフトウェア パッケージ--install-提案
#-s
#-q quiet
-q=# (# は数値を表し、サイレント レベルの設定に使用されます)。インストール プロセス中にあまり多くの画面出力を望まない場合に非常に便利です
##壊れた依存関係を修正 #-dダウンロードのみ、インストールしないでください
-- reinstall##再インストール
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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? Apr 01, 2025 pm 02:48 PM

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

APSChedulerタイミングタスクをMACOSのサービスとして構成する方法は? APSChedulerタイミングタスクをMACOSのサービスとして構成する方法は? Apr 01, 2025 pm 06:09 PM

nginと同様に、APSChedulerタイミングタスクをサービスとして構成する場合、APSChedulerタイミングタスクをMACOSプラットフォームでサービスとして構成します...

マルチスレッドをC言語で実装する4つの方法 マルチスレッドをC言語で実装する4つの方法 Apr 03, 2025 pm 03:00 PM

言語のマルチスレッドは、プログラムの効率を大幅に改善できます。 C言語でマルチスレッドを実装する4つの主な方法があります。独立したプロセスを作成します。独立して実行される複数のプロセスを作成します。各プロセスには独自のメモリスペースがあります。擬似マルチスレッド:同じメモリ空間を共有して交互に実行するプロセスで複数の実行ストリームを作成します。マルチスレッドライブラリ:pthreadsなどのマルチスレッドライブラリを使用して、スレッドを作成および管理し、リッチスレッド操作機能を提供します。 Coroutine:タスクを小さなサブタスクに分割し、順番に実行する軽量のマルチスレッド実装。

PythonインタープリターはLinuxシステムで削除できますか? PythonインタープリターはLinuxシステムで削除できますか? Apr 02, 2025 am 07:00 AM

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

web.xmlを開く方法 web.xmlを開く方法 Apr 03, 2025 am 06:51 AM

web.xmlファイルを開くには、次の方法を使用できます。テキストエディター(メモ帳やテキストエディットなど)を使用して、統合開発環境(EclipseやNetBeansなど)を使用してコマンドを編集できます(Windows:Notepad web.xml; Mac/Linux:Open -A Textedit Web.xml)

See all articles