GNU/Linux >> Linux の 問題 >  >> Ubuntu

aptによるUbuntuパッケージ管理

Ubuntuベースのディストリビューションは、ソフトウェアのインストール、アップグレード、依存関係の管理、および削除のためのいくつかのパッケージ管理システムを備えています。 Advanced Packaging Tool(APT)は、Ubuntu、Debian、Linux Mint、POP!_OSなどのディストリビューションのデフォルトのパッケージマネージャーです。

APTはUbuntuのaptコマンドと連携して、60,000を超えるソフトウェアパッケージ、依存関係、メタデータ、およびシステムにソフトウェアアプリケーションをインストールするための手順へのアクセスを提供します。

この記事では、aptコマンドによるAPTの操作、パッケージの検索、インストール、更新、システムのアップグレード、および追加のソフトウェア用の追加のリポジトリーの追加についてユーザーをガイドします。また、aptitudeやdpkgなどの他のパッケージマネージャーも紹介します。

パッケージ管理システムの利点

Ubuntuのパッケージ管理システムは通常、DEBパッケージまたは拡張子が.debのファイルを管理します。これは通常リポジトリに存在します。お気に入りのディストリビューションでパッケージ管理システムを使用する必要がある理由はいくつかあります。

  • インストール済みの利用可能なパッケージを簡単に照会できます。
  • パッケージまたは古いアプリケーションとそのすべてのファイルを完全に削除できます。
  • パッケージファイルの整合性を確認できます。
  • バグ修正とパッケージアップグレードでアプリケーションを最新の状態に保ちます。また、システムを破壊する可能性のある古いバージョンのファイルもすべて削除されます。
  • パッケージを以前のバージョンに簡単にダウングレードできます。
  • 冗長なライブラリとソフトウェアの依存関係を管理することで、システムを軽量に保ちます。
  • パッケージのグループを簡単にインストールまたは削除できます。

APTの機能

  • 複数のリポジトリをサポートします。
  • シンプルな構成とインターフェースが特徴です。
  • DEB-一貫した動作。
  • パッケージグループのサポートと複数のリポジトリグループを備えています。

APTコマンド

aptコマンドは、パッケージの検索、インストール、削除などを行うための強力なコマンドラインツールです。

パッケージまたはソフトウェアを検索する

ソフトウェアをインストールする前に、Ubuntuリポジトリに存在するかどうかを確認する必要がある場合があります。 aptsearchコマンドでアプリケーションの一般名を使用します。たとえば、コックピットサーバー管理アプリケーションをインストールできるかどうかを検索できます。

 $ sudo apt search zsh 

パッケージをインストールする

パッケージが存在することを確認したら、aptinstallコマンドを使用してパッケージをインストールできます。

 $ sudo apt install cockpit 

パッケージメタデータを表示する

インストールするかどうかを決定する前に、パッケージに関する詳細情報を見つける必要がある場合があります。 apt showコマンドを使用して詳細を確認し、パッケージのメタデータを参照して、プロジェクトのURL、ライセンス、詳細な説明などの情報を確認します。

 $ sudoaptshowコックピット

ファイルを提供するパッケージを探す

場合によっては、ファイル名の1つを使用してパッケージを検索する必要があります。たとえば、qmake-qt5のような依存関係のapt検索クエリでは、必要なパッケージが見つかりません。

 $ sudo apt searchqmake-qt5
並べ替え...完了
全文検索...完了

検索で探しているものが見つかった場合は、apt-fileコマンドを使用してパッケージ内を探索できます。

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

パッケージに含まれているファイルを調べる

特定のインスタンスでアプリケーションがシステムにすでにインストールされている場合があり、パッケージに含まれているファイルを知りたい場合があります。このような詳細を確認するには、apt-filelistコマンドを使用する必要があります。このコマンドは、パッケージに関するリポジトリメタデータを調べ、指定されたパッケージによって提供されるすべてのファイルを返します。

 $ sudo apt-file list cockpit 
cockpit:/usr/share/doc/cockpit/TODO.Debian
cockpit:/ usr / share / doc / cockpit / copyright
cockpit: /usr/share/metainfo/cockpit.appdata.xml

パッケージを削除する

システムにパッケージが不要になった場合は、aptremoveを使用してアンインストールします。このコマンドは、インストールされているすべてのパッケージファイルと不要な依存関係を削除します。

 $sudoaptはコックピットを削除します

パッケージと構成ファイルを削除する

-purgeオプションをaptremoveに追加すると、パッケージ構成ファイルも削除されます。ただし、–purgeオプションを使用する場合は、システムに望ましくない影響を与える可能性があるため、注意が必要です。

 $sudoaptパージコックピット

2つ以上のパッケージが同じ依存関係を必要とする場合、パッケージを削除してもすべての依存関係が自動的に削除されるわけではありません。そのため、多くのアプリケーションやパッケージをインストールおよびアンインストールした後、パッケージが迷子になる可能性があります。未使用のパッケージをクリアしてハウスキーピングを実行するには、aptautoremoveコマンドを使用します。

 $ sudo apt autoremove 

パッケージインデックスを更新する

APTパッケージインデックスは、システムで/etc/apt/sources.listの下に定義されているリポジトリから利用可能なすべてのパッケージのリストです。 ファイルと/etc/apt/sources.list.d ディレクトリ。次のコマンドを実行して、リポジトリの最新の変更でローカルパッケージインデックスを更新します。

 $ sudo apt update 

システムパッケージのアップグレード

aptコマンドを使用してパッケージを直接更新し、重要なパッチ、バグ修正、およびセキュリティ更新プログラムを入手できます。システムパッケージをアップグレードする前に、パッケージインデックスを更新してから、aptupgradeコマンドを使用してアップグレードしてください。

 $ sudo apt upgrade 

aptコマンドログを表示

ATPコマンドのすべてのアクションは、 /var/log/dpkg.logに記録されます。 ファイルを作成しておくと、問題が発生してATPのトラブルシューティングを行う場合に便利です。

APTガイド

 $ sudo apt help 

追加のリポジトリ

Aptは、ソフトウェアリポジトリのリストをファイル/etc/apt/sources.listに保存し、拡張子が.listのファイルを/etc/apt/sources.list.d/ディレクトリに保存します。 。これらのファイルを編集して、リポジトリを追加、削除、または無効にすることができます。

sources.listファイルの編集を開始する前に、ファイルのバックアップを作成することをお勧めします。破損が避けられないという明らかな理由で!次のコマンドでバックアップを作成します。

 $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 

リポジトリの追加

Ubuntuで公式にサポートされているパッケージリポジトリとは別に、ユニバースやマルチバース、さらにはLaunchpadPPAリポジトリなどのコミュニティが管理するリポジトリを追加できます。

ユニバースとマルチバースリポジトリの追加

使用したいリポジトリに対応するapt行のコメントを解除することで、追加のリポジトリを有効にできます。たとえば、各行の前にある「#」を削除して、ユニバースまたはマルチバースリポジトリのコメントを解除します。

 deb http://us.archive.ubuntu.com/ubuntu/ release_name universe 
deb-src http://us.archive.ubuntu.com/ubuntu/ release_name universe
deb http: //us.archive.ubuntu.com/ubuntu/release_name-updatesユニバース
deb-srchttp://us.archive.ubuntu.com/ubuntu/release_name-updatesユニバース

add-apt-repositoryコマンドを使用してリポジトリを追加することもできます:

 $ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ release_name universe multiverse" 
$ sudo add-apt-repository "deb http://us.archive .ubuntu.com / ubuntu/release_name-ユニバースマルチバースを更新します"

ヒント:リリースを確認するには、lsb_release-scと入力します。

パートナーリポジトリの追加

次の行のコメントを解除して、パートナーリポジトリを有効にします。

 debhttp://archive.canonical.com/ubunturelease_nameパートナー
deb-srchttp://archive.canonical.com/ubunturelease_nameパートナー

次に、次のコマンドを使用して、変更を有効にするためにパッケージリストを更新できます。

 $ sudo apt update 

LaunchpadPPAリポジトリの追加

add-apt-repositoryコマンドを使用して、Launchpad PPA(Personal Package Archive)リポジトリーを追加できます。

 $ sudo add-apt-repository ppa: 

その他のリポジトリ

場合によっては、Ubuntu以外のリポジトリを追加する必要があります。 Ubuntu以外のリポジトリを追加するには、ソフトウェアソースのaptリポジトリ行をsources.listファイルに追加します。

注意:信頼できるリポジトリのみを追加してください。

 deb http://mirror3.ubuntulinux.nl/ repo_name pckg 

いつものように、変更を更新することを忘れないでください:

 $ sudo apt update 

aptの詳細については、公式のmanページ(man apt)を参照してください。

自動更新

Aptは、自動更新の管理と構成に使用できる無人アップグレードパッケージを提供します。次のコマンドでパッケージをインストールできます:

 $ sudo apt install unattended-upgrades 

次のステップは、 /etc/apt/apt.conf.d/50unattended-upgradesを編集することです。 。

無人-Upgrade::Allowed-Origins {
"$ {distro_id}:$ {distro_codename}";
"$ {distro_id}:$ {distro_codename} -security";
// "$ {distro_id}:${distro_codename}-更新";
// "$ {distro_id}:${distro_codename}-提案";
};

注:記号「//」はコメントを示しているため、評価されません。
特定のパッケージをパッケージ-ブラックリストリストに追加することで、自動更新から除外することもできます。

無人-Upgrade::Package-ブラックリスト{
// "vim";
// "libc6";
// "libc6-dev";
}

次のステップは、 /etc/apt/apt.conf.d/20auto-upgrades を編集して、自動更新を有効にすることです。 適切な構成オプションを使用します。たとえば、次の構成では、パッケージリストが更新され、利用可能なアップグレードが5日ごとにインストールされます。さらに、ローカルダウンロードアーカイブを隔週でクリーンアップするようにaptに指示します。

 APT ::Periodic ::Update-Package-Lists "5"; 
APT ::Periodic ::Download-Upgradeable-Packages "5";
APT ::Periodic ::AutocleanInterval "14 ";
APT ::Periodic::Unattended-アップグレード"5";

新しいUbuntuリリースへのアップグレード

Ubuntuは、あるLTSから次のLTSへの順番でのアップグレードをサポートしています。たとえば、Ubuntu16.04LTSをUbuntu18.04LTSにアップグレードしてから、Ubuntu20.04LTSに別のアップグレードを実行することしかできません。したがって、ニュースリリースにアップグレードする前に、次のコマンドを使用してシステムを完全に更新してください。

 $ sudo apt update 
$ sudo apt upgrade

システムのアップグレードを実行するには、do-release-upgradeコマンドを使用することをお勧めします。

 $ sudo do-release-upgrade 

プロセスが開始する前に、システムは変更を受け入れるように促し、変更を受け入れた後にのみ続行します。この時点でコーヒーを飲み、システムにアップグレードプロセスを完了させるのは安全です。すべてのパッケージが更新されると、システムは、廃止されたパッケージを削除するように再度要求します。

最後に、システムを再起動して、アップグレードしたシステムにログオンします。

適性

Aptitudeは、APTシステム用のNcursesベースのフロントエンドであり、テキストベースのフロントエンドまたはコマンドラインツールとして起動できます。 Aptitudeの使用は簡単で、シングルキーコマンドで一般的なパッケージ管理機能を実行できます。次のコマンドを入力して、メニュー方式のインターフェースを開始します。

 $ sudo aptitude 

このコマンドは、新しいパッケージやインストールされていないパッケージなどのカテゴリを含むメニューバーを表示します。その後、パッケージのインストール、削除、更新、パッケージのアップグレードなどの機能を実行できます。
以下は、パッケージの状態を説明するために使用される一般的なキーの例です。

  • i:インストールされたパッケージ。
  • c:パッケージがインストールされていません。
  • p:システムからパッケージを削除しました。
  • v:仮想パッケージ。
  • u:解凍されたファイル。
  • C:半分構成されています。つまり、パッケージ構成が失敗し、修正する必要があります。
  • B:壊れたパッケージ。
  • H:半分インストールされている、つまり削除に失敗しました。
  • U:解凍されたファイルですが、まだ構成されていません。
  • q:qキーを押してAptitudeを終了します。

適性について詳しくは、manページをご覧ください:man aptitude

コマンドラインの適性

aptitudeコマンドを使用してコマンドラインツールとしてAptitudeを使用することもできます。 aptコマンドとaptitudeコマンドも同様に機能します。たとえば、パッケージをインストールするには、以下に示すように、aptitudeの代わりにaptを使用できます。

 $ sudo aptitude install cockpit 

パッケージを削除します:

 $sudoaptitudeはコックピットを削除します

dpkg

dpkgは、Debianベースのシステム用のさらに別のパッケージマネージャーです。 dpkgは、AptとAptitudeがほとんどの機能を実行するために使用する「バックエンド」パッケージマネージャーと見なすことができます。これを使用して、ローカルパッケージの管理、パッケージのインストール、削除、およびビルドを行うことができます。ただし、dpkgの注意点の1つは、パッケージと依存関係を自動的にダウンロードしてインストールできないことです。

以下は、dpkgの使用方法の例です。

システムにインストールおよびアンインストールされたすべてのパッケージを一覧表示します:

 $ dpkg -l <​​/ pre> 

パイプとgrepを使用して特定のパッケージを表示する:

 $ dpkg -l | grepコックピット

パッケージによってインストールされたファイルを一覧表示します:

 $dpkg-Lコックピット

ファイルをインストールしたパッケージを検索します:

 $ dpkg -S /etc/host.conf 
ベースファイル:/etc/host.conf

ローカルの.debファイルをインストールします:

 $ sudo dpkg -i new_package_1.0.1_amd64.deb 

パッケージをアンインストールします:

 $ sudo dpkg -r new_package 

システムの依存関係を壊す可能性があるため、dpkgを使用してパッケージをアンインストールすることはお勧めしません。より良い代替手段はaptです。これは、依存関係を処理し、システムパッケージの一貫性を確保できます。

dpkgの詳細については、manページを参照してください:man dpkg

DNFと比較したAPT/APT-GETコマンド

CentOSのようなRHELディストリビューションの一般的なユーザーでない場合は、Debianベースのディストリビューションのaptと「同義」であるFedoraのDNFパッケージマネージャーに慣れることをお勧めします。ここでは、いくつかの一般的なAPTコマンドとそれに相当するDNFを示します。

APTコマンド DNFコマンド
apt update
apt-get update
dnf check-update
apt upgrade
apt-get upgrade
dnfアップグレード
apt full-upgrade
apt-get dist-upgrade
dnfdistro-syncまたは
dnfシステムアップグレード
apt remove
apt-get remove
dnf remove
aptパージ
apt-getパージ
---
apt autoremove
apt-get autoremove
dnf自動削除
apt検索
apt-cache検索
dnf検索

まとめ

aptパッケージマネージャーを理解して使用するのは簡単です。記事で強調したように、aptは、Ubuntuやその他のDebianベースのディストリビューションでアプリケーションやソフトウェアをクエリしてインストールするための強力で堅牢なツールです。

主にGUIを好むユーザーは、SynapticおよびGNOMEソフトウェアをチェックアウトして、Ubuntuパッケージおよびソフトウェアにアクセスできます。


Ubuntu
  1. aptによるLinuxパッケージ管理

  2. Ubuntu18.04LTSでAPTを使用してパッケージを管理する方法

  3. UbuntuでAPTパッケージマネージャーにIPv4を使用させる方法

  1. aptパッケージマネージャーを使用してUbuntu20.04にJavaをインストールします

  2. トップ3コマンドラインUbuntuパッケージマネージャーツール

  3. Aptの「購入者の反省」?

  1. dnfを使用したLinuxパッケージ管理

  2. Lua5.2対のインストール。 Ubuntu 16.10のLua5.3?

  3. Apt-インストール済みパッケージのリストを取得| UbuntuにAptでインストールされたリスト