1. 概要

パッケージマネージャーは、すべてのLinuxシステムの優れた機能です。 これにより、ソフトウェアパッケージのインストール、削除、および検査を簡単に処理できます。

このチュートリアルでは、最も有名なYUMとAPTの2つを使用する方法を学習します。

2. 一言で言えばパッケージマネージャー

始める前に、パッケージマネージャーが効果的に何であるかを概説しましょう。

Windowsでは、通常、実行可能インストーラーをダウンロードして実行することでソフトウェアをインストールします。

Linuxでも同じことができ、ディストリビューションで期待される形式でパッケージを手動でダウンロードしてインストールできます。 ただし、主流の方法は、利用可能なソフトウェア(およびインストールされているソフトウェア)の参照、およびインストール、更新、アンインストールをパッケージマネージャーに依存することです。

パッケージマネージャーによって提供されるソフトウェアバージョンは、常に最新のものであるとは限りませんが、プロセス全体がよりスリムで、より速く、より安全です。

ここで、YUMとAPTとは何か、およびそれらがどのように機能するかを見てみましょう。

3. YUM – Yellowdog Updater、変更済み

YUMは、RPMベースのディストリビューション用のパッケージ管理ユーティリティです。 RPM(Red Hat Package Manager)は、RHELやCentOSなどのシステムのベースとなるパッケージマネージャーです。

YUMは内部でRPMを使用し、高レベルの抽象化によってその複雑さを隠します。

Fedora22とRHEL8は、DNFと呼ばれるYUMの書き直しを導入しました。これは、RPMベースのシステムの新しい標準になる可能性があります。

4. APT –高度なパッケージツール

一方、APTは、DPKGベースのディストリビューションでソフトウェアを管理するために使用されるさまざまなツールのコレクションです。

DPKGはDebianPacKaGeを意味し、DebianやUbuntuなどのシステムの中核となるパッケージマネージャーです。

APTは、DPKGへの低レベルの呼び出しをラップして、ユーザーに使いやすいインターフェースを提供します。

APTは、いくつかの異なるコンテキストで使用される頭字語であることに注意してください。 これは、パッケージングシステム(APT)、それが配布されるLinuxパッケージ(apt)であり、ライブラリを形成するツールの1つでもあります( apt apt-get apt-cache など)。

4.1. apt

apt は、APTパッケージマネージャーの最新ツールです。

ユーザーは操作にaptapt-getのどちらを使用するのか、どちらが違いなのかわからないため、混乱の原因となることがよくあります。

ここでそれらを明確にしましょう: aptは、Debianベースのシステムを手動で処理する場合の適切なツールです。 apt-getapt-cache、よりも、他の2つの主要な操作を統合して簡素化するため、常に優先する必要があります。

また、色付きの出力や追加情報として、他のいくつかの小さな特典とともに便利なプログレスバーを提供します。

4.2. apt-get

apt-get 、反対側では、管理操作をスクリプト化する場合は、が正しい選択です。 より安定したインターフェース、より多くの機能を提供し、より深いカスタマイズも可能にします。

これは、Ubuntu16.04までのあらゆる種類の操作のデフォルトツールでした。 Ubuntu 16.04では、aptが人間が使用するための推奨オプションになりました。

4.3. apt-cache

最後に、 apt-cache は、 apt-get を補完するツールであり、インストールされているソフトウェアと利用可能なソフトウェアに関する情報も提供します。

4.4. スナッピー

Ubuntuの背後にある会社であるCanonicalは最近、Snappyと呼ばれる配布に依存しない新しいパッケージングシステムをリリースしました。

snap パッケージは自己完結型であり、Ubuntuだけでなく、Fedora、CentOS、Arch、Gentooなどにもインストールできます。

最新のUbuntuバージョンは主にSnappyを介して一部のパッケージを配布していますが、少なくとも今のところ、APTはソフトウェアパッケージを管理する公式の方法です。

5. クエリ

これらのツールを使用してパッケージマネージャーにクエリを実行する方法を見てみましょう。

5.1. パッケージのリスト

次のコマンドを使用して、YUMにパッケージを一覧表示するように依頼できます。

# List installed and available packages from repositories:
yum list all
# List only installed packages:
yum list installed
# List only available packages:
yum list available
# List installed and available kernel packages:
yum list kernel

代わりに、APTを使用して、パッケージを一覧表示できます。

# List installed and available packages from repositories:
apt list
# List only installed packages:
apt list --installed

利用可能なパッケージのみを表示したい場合は、そのまま使用できるAPTコマンドがないため、grepを使用できます。

# List only available packages:
apt list | grep -v installed

スクリプトについては、apt-cacheから入手できるaptlistに最も近いソリューションを使用することも検討できます。

apt-cache search .

ただし、結果は発生回数と返される順序の両方で異なることに注意してください。

5.2. パッケージを検索

YUMを使用すると、名前または説明に特定の用語が含まれているパッケージを探すことができます。

yum search SOMETHING

今回は、APTでは同じです。

apt search SOMETHING
apt-cache search SOMETHING

5.3. パッケージの詳細を取得する

関心のあるパッケージがわかったら、その詳細を確認することをお勧めします。

YUMで:

yum info MY_PACKAGE

同様に、APTでは:

apt show MY_PACKAGE
apt-cache show MY_PACKAGE

6. パッケージ管理

ソフトウェアパッケージを検索および検査する方法を確認したので、それらを管理する方法を見てみましょう。

6.1. パッケージ情報の更新

まず、パッケージインデックスを更新する必要があります。

これらのコマンドは、インストールされているパッケージを更新するのではなく、インストールまたはアップグレードできるパッケージに関する最新情報をダウンロードするだけです。

YUMでは次のようになります。

yum check-update

代わりに、APTでは次のようになります。

apt update
apt-get update

他の操作の前に、常に aptupdateを実行する必要があります。

6.2. パッケージのインストール

YUMにパッケージをインストールするには:

yum install MY_PACKAGE

繰り返しますが、Debianシステムではまったく違いはありません。

apt install MY_PACKAGE
apt-get install MY_PACKAGE

6.3. パッケージのアップグレード

パッケージのアップグレードは、さまざまな方法で実行できます。

YUMでは、コマンド yumupdateは内部でyumcheck-update を実行します。つまり、パッケージの更新後に何もインストールしないようにする場合を除いて、後者を実行する必要はありません。索引。 次のように、すべてまたは一部のパッケージをアップグレードできます。

# Update the package index and every package:
yum update
# Update only the package MY_PACKAGE:
yum update MY_PACKAGE
# Apply security-related package updates:
yum update --security

または:

# Update every package:
apt upgrade
apt-get upgrade 
# Update every package along with their dependencies:
apt full-upgrade
apt-get dist-upgrade
# Update only the package MY_PACKAGE:
apt-get install --only-upgrade MY_PACKAGE
# Apply security-related package updates:
unattended-upgrade --dry-run -d

パッケージとその依存関係をアップグレードすることは、アップグレードプロセスで必要な場合は、既存のソフトウェアをアンインストールし、新しいソフトウェアをインストールすることを意味する可能性があることを知っておくことが重要です。

一方、標準のアップグレードコマンドでは、何もアンインストールされません。 ただし、 apt-get upgrade (これも何もインストールしません)とは異なり、 aptupgradeは必要に応じて新しいソフトウェアをインストールする場合があります。

6.4. パッケージの削除

ソフトウェアパッケージを削除する必要がある場合があります。 それでは、浅くて柔らかいものから深くて最終的なものまで、これを行うさまざまな方法を調べてみましょう。

インストールされたパッケージと、場合によってはYUMでのその依存関係を取り除くために、次の2つの同等のコマンドのいずれかを実行できます。

yum erase MY_PACKAGE
yum remove MY_PACKAGE

RHEL7以降では、 autoremove を使用して、追加の不要なパッケージも消去できます。

yum autoremove MY_PACKAGE

代わりにパッケージを削除するDebianの方法は次のとおりです。

apt remove MY_PACKAGE
apt-get remove MY_PACKAGE

ただし、パッケージの構成も削除して、システムを完全に削除する場合は、パージを利用できます。

apt purge MY_PACKAGE
apt-get purge MY_PACKAGE

6.5. 掃除

時々、私たちのシステムは孤立したパッケージによって汚染されます。それはもう必要ではありませんが、まだスペースを占有しています。

autoremove を使用して、パッケージ名なしでYUM内のこれらの不要なパッケージを削除できます。

yum autoremove

これは、Debianディストリビューションでも同じように機能します。

apt autoremove
apt-get autoremove

7. リポジトリ管理

どちらのパッケージングシステムも、パッケージのフェッチを照会するための一連の公式リポジトリから始まります。

ただし、コミュニティは繁栄しており、必要なパッケージが公式リポジトリにないか、存在しているが、バージョンが古すぎてニーズに合わないことがよくあります。

このような場合、パッケージマネージャーリストに非公式のリポジトリを追加することをお勧めします(セキュリティの問題を表す可能性があるという事実に常に注意を払ってください)。

7.1. リポジトリの追加

YUMでのリポジトリーの追加は手動操作であり、フォルダー/etc/yum.repos.dの下に.repo拡張子を持つファイルを作成することで構成されます。

ファイルには、接続しているカスタムリポジトリに関するすべての情報が含まれている必要があります。

AdoptOpenJDKリポジトリを追加してみましょう。

# /etc/yum.repos.d/adoptopenjdk.repo
[AdoptOpenJDK]
name=AdoptOpenJDK
baseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/$(uname -m)
enabled=1
gpgcheck=1
gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public

ただし、APTでは状況がまったく異なります。 リポジトリのGPGキーをダウンロードし、 apt-keyaddを使用してAPTキーリングに追加する必要があります。

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -

次に、この時点で、 add-apt-repository –yesの後に次のURLを使用してリポジトリを追加できます。

add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

YUMとは異なり、すべてのリポジトリは1つのファイル/etc/apt/sources.listに保存されます。

7.2. リポジトリの削除

YUMでのリポジトリの削除は、インストール方法によって実行方法が異なります。

次のコマンドを実行して、その出力を分析できます。

rpm -qa | grep -i CUSTOM_REPOSITORY

リポジトリのRPMパッケージが見つかった場合は、RPMを介してインストールされていることを意味し、-eを使用して削除できます。

rpm -e CUSTOM_REPOSITORY_RPM_PACKAGE

それ以外の場合は、リポジトリファイルを削除するだけです。

rm /etc/yum.repos.d/CUSTOM_REPOSITORY.repo

リポジトリファイルでenabled=1enabled= 0 に変更するだけで、削除せずに無効にすることもできます。

一方、APTでは、次のことが簡単にできます。

add-apt-repository --remove ppa:CUSTOM_REPOSITORY/ppa

または、/etc/apt/sources.listファイルのリポジトリに関連する行をコメントアウトすることもできます。

8. その他の操作

これら2つは他の多くの操作を行います。 それらのいくつかをカバーしましょう。

8.1. パッケージの再インストール

一部のファイルが欠落しているなど、パッケージが破損している場合は、次の方法で再インストールできます。

yum reinstall MY_PACKAGE
apt reinstall MY_PACKAGE
apt-get reinstall MY_PACKAGE

8.2. パッケージの特定のバージョンのインストール

代わりに、特定のバージョンのパッケージをインストールする必要がある場合があります。

パッケージの利用可能なバージョンは、次の方法で確認できます。

yum list MY_PACKAGE --showduplicates
apt-cache showpkg MY_PACKAGE

次に、必要なバージョンを新しいインストールのターゲットにすることができます。

yum install MY_PACKAGE-WANTED_VERSION
apt install MY_PACKAGE=WANTED_VERSION
apt-get install MY_PACKAGE=WANTED_VERSION

YUMを使用すると、既存のバージョンから以前にインストールされたバージョンの1つにダウングレードすることもできます。

yum downgrade MY_PACKAGE-WANTED_VERSION

8.3. パッケージのグループのインストール

一部のパッケージは、共通の目的のために1つのグループにまとめられており、一度にインストールできます。

別の実際の例をターゲットにして、Linuxサーバーにグラフィックス環境をインストールすることを考えてみましょう。

X WindowSystemおよびGNOMEグループをインストールすると、何百ものパッケージを手動でインストールする手間が省けます。

yum groupinstall 'X Window System' 'GNOME'

ただし、Debianパッケージマネージャーはそれらを単純なパッケージとして処理するため、従来の aptinstallコマンドで十分です。

apt-get install xorg

9. 結論

このチュートリアルでは、YUMとAPTに関連する概念と、それらのメインコマンドの実際の使用法を学習しました。

表面を傷つけただけですが、RedHatおよびDebianベースのシステムでソフトウェアを処理できるようになりました。