この記事はLFCAシリーズの第7部であり、この部ではLinuxシステムでソフトウェアパッケージを管理するための一般的なシステム管理コマンドについて紹介します。
システム管理者として、ソフトウェアパッケージの管理が任されます。これには、システムからパッケージのインストール、アップグレード、削除、またはアンインストールが含まれます。
Linuxシステムには2種類のパッケージがあります:
- バイナリパッケージ:これには設定ファイル、実行可能ファイル、manページなどが含まれます。Debianでは、バイナリパッケージには.debのファイル拡張子があります。Red Hatでは、バイナリパッケージには.rpmのファイル拡張子があります。バイナリパッケージは、後で見るように、Debianユーティリティdpkg(.debバイナリファイル用)およびrpm(.rpmバイナリパッケージ用)を使用して展開されます。
- ソースパッケージ:ソースパッケージは、アプリケーションのソースコード、パッケージの簡単な説明、およびアプリケーションをビルドする方法の手順を含む圧縮ファイルです。
異なる Linux ディストリビューション は、それぞれ独自のパッケージ管理システムを持っています。ここでは、2 種類の Linux ファミリー:Debian と Red Hat について見ていきましょう。
Debian のパッケージ管理
Debian は、パッケージ管理のためのフロントエンド ソリューションとして APT (Advanced Package Tool) を提供しています。これは、コア ライブラリと連携する強力なコマンドライン ユーティリティで、パッケージのダウンロード、インストール、アップデート、削除を可能にします。
Debian/Ubuntu システムにパッケージをインストールする
Windows 環境から移行した場合、ソフトウェア ベンダーから .exe
パッケージをダウンロードし、インストール ウィザードを使ってシステムにインストールする方法に慣れているでしょう。
Linux では、アプリケーションのインストール方法がかなり異なります。ソフトウェア パッケージは、オンライン リポジトリからダウンロードしてパッケージ マネージャーを使ってインストールします。リポジトリのリストは /etc/apt/sources.list ファイルと /etc/sources.list.d ディレクトリで定義されています。
Debian ベースのディストリビューションでは、APT パッケージ マネージャーを使ってオンライン リポジトリからパッケージをダウンロードしてインストールします。このツールは、パッケージだけでなく、パッケージに必要な依存関係もインストールします。
常にパッケージをインストールする前に、/etc/apt/sources.listファイル内のリポジトリを更新することが推奨されています。これを実行するには、次のコマンドを実行してください:
$ sudo apt update
ソフトウェアパッケージをインストールするには、次の構文を使用してください:
$ sudo apt install package_name
たとえば、Apacheウェブサーバーをインストールするには、次のコマンドを実行します:
$ sudo apt install apache2

インストールする前にパッケージを検索する
リポジトリ内のパッケージの利用可能性を検索するには、次の構文を使用します:
$ apt search package_name
たとえば、neofetchというパッケージの利用可能性を検索するには、次のコマンドを実行します:
$ apt search neofetch

パッケージの情報を表示する
パッケージに関する詳細情報を表示するには、aptコマンドを以下のように使用します。
$ apt show package_name
たとえば、neofetchパッケージの詳細情報を表示するには、次のコマンドを実行します:
$ apt show neofetch

Ubuntuでパッケージをアップグレードする
システムにインストールされたパッケージをアップグレードするには、次のコマンドを実行してください:
$ sudo apt upgrade
Ubuntuでパッケージを削除する
ソフトウェアパッケージを削除するには、apache2などとして、次のコマンドを実行します:
$ sudo apt remove apache2
構成ファイルとともにパッケージを削除する場合は、次のようにpurgeオプションを使用してください。
$ sudo apt purge apache2
Dpkgパッケージマネージャ
DebianベースのLinuxディストリビューションもdpkgパッケージマネージャを提供しています。これは、インストール中に依存関係を必要としないバイナリパッケージを処理する低レベルのパッケージマネージャです。 dpkgはバイナリパッケージファイルが依存関係を必要とすることを検出した場合、欠落している依存関係を報告して停止します。
.debファイルからパッケージをインストールするには、次のようにdpkgコマンドを使用します。
$ sudo dpkg -i package.deb
たとえば、そのAnyDeskパッケージをそのDebianファイルからインストールするには、次のように実行します。
$ sudo dpkg -i anydesk_6.1.0-1_amd64.deb OR $ sudo dpkg --unpack anydesk_6.1.0-1_amd64.deb

パッケージがインストールされたかどうかを確認するには、次のコマンドを実行します。
$ sudo dpkg -l anydesk

パッケージを削除するには、次のように-r
オプションを使用します。
$ sudo dpkg -r anydesk

パッケージとその構成ファイルすべてを削除するには、パッケージに関連するすべてのファイルをパージするために-P
オプションを使用します。
$ sudo dpkg -P anydesk
YUM / DNFとRPMパッケージ管理
現代のRedHat Linuxディストリビューション、例えばRHEL、CentOS 8、Fedora 21およびそれ以降のバージョンは、廃止予定のYUMパッケージマネージャのアップグレードであるDNF (Dandified YUM)を使用しています。これは、RedHatやCentOS 7などの古いバージョンのRed Hat Linuxディストリビューションの事実上のパッケージマネージャでした。
APTと同様に、DNFまたはYUMパッケージマネージャは、オンラインリポジトリからパッケージをインストールするために使用されます。
CentOSでソフトウェアパッケージをインストールする
パッケージをインストールするには、次の構文を使用します。
$ sudo dnf install package-name OR $ sudo yum install package-name (For older versions)
例えば、Apache httpdパッケージをインストールするには、次のコマンドを実行します。
$ sudo dnf install httpd OR $ sudo yum install httpd
ソフトウェアパッケージを検索する
リポジトリからパッケージの可用性を検索することもできます。次のようにします。
$ sudo dnf search mariadb
ソフトウェアパッケージをアップデートする
すべてのパッケージを最新バージョンにアップデートするには、次のように実行します。
$ sudo dnf update OR $ sudo yum update
ソフトウェアパッケージを削除する
パッケージを削除するには、次のように実行します。
$ sudo dnf remove package_name OR $ sudo yum remove package_name
例えば、httpdパッケージを削除するには、次のように実行します。
$ sudo dnf remove httpd OR $ sudo yum remove httpd
RPMパッケージマネージャ
RPMパッケージマネージャーは、RedHat Linuxディストリビューションで.rpmバイナリパッケージを扱うためのオープンソースのパッケージ管理ツールです。APTパッケージマネージャーと同様に、rpmはバイナリパッケージを管理します。
ソフトウェアパッケージのインストール
次の構文を使用して、.rpm
ファイルを使用してアプリケーションをインストールします。
$ sudo rpm -i package_name
たとえば、表示されている.rpm
ファイルからAnyDeskアプリケーションをインストールするには、次のコマンドを実行します。
$ sudo rpm -i anydesk-6.1.0-1.el8.x86_64.rpm
システム上のソフトウェアアプリケーションの存在を確認またはチェックするには、次の構文を使用します。
$ sudo rpm -q package_name
たとえば、Anydeskがインストールされているかどうかを確認するには、次のコマンドを実行します。
$ sudo rpm -q anydesk

すべての現在のソフトウェアパッケージを問い合わせるには、次のコマンドを使用します。
$ sudo rpm -qa

ソフトウェアパッケージの削除
rpmコマンドを使用してパッケージをアンインストールするには、次の構文を使用します。
$ sudo rpm -e package_name
例:
$ sudo rpm -e anydesk
結論
apt、dpkg、rpm、dnf、およびyumコマンドは、Linuxシステムでソフトウェアパッケージをインストール、更新、削除するのに役立つコマンドラインツールです。
Source:
https://www.tecmint.com/manage-software-packages-in-linux/