前書き

最新のUnixライクなオペレーティングシステムは、ソフトウェアを見つけてインストールするための集中メカニズムを提供します。 ソフトウェアは通常*パッケージ*の形で配布され、*リポジトリ*に保存されます。 パッケージの操作は「パッケージ管理」と呼ばれます。 パッケージは、共有ライブラリ、アプリケーション、サービス、およびドキュメントとともに、オペレーティングシステムの基本コンポーネントを提供します。

パッケージ管理システムは、ソフトウェアの1回限りのインストール以上のことを行います。 また、インストール済みのパッケージをアップグレードするためのツールも提供します。 パッケージリポジトリは、システムで使用するためにコードが吟味されていること、およびソフトウェアのインストールされたバージョンが開発者とパッケージメンテナーによって承認されていることを確認するのに役立ちます。

サーバーまたは開発環境を構成する場合、多くの場合、公式リポジトリを超えて見る必要があります。 ディストリビューションの安定版リリースのパッケージは、特に新しいソフトウェアまたは急速に変化するソフトウェアが懸念される場合、古くなっている可能性があります。 それにもかかわらず、パッケージ管理はシステム管理者および開発者にとって不可欠なスキルであり、主要なディストリビューション用のパッケージ化されたソフトウェアの豊富さは膨大なリソースです。

このガイドは、さまざまなディストリビューションでパッケージを検索、インストール、およびアップグレードするための基本事項のクイックリファレンスとして意図されており、システム間でその知識を翻訳するのに役立ちます。

パッケージ管理システム:簡単な概要

ほとんどのパッケージシステムは、パッケージファイルのコレクションを中心に構築されています。 通常、パッケージファイルは、インストールスクリプトとともに、コンパイルされたバイナリおよびソフトウェアを構成する他のリソースを含むアーカイブです。 パッケージには、依存関係、インストールと実行に必要な他のパッケージのリストなど、貴重なメタデータも含まれています。

機能と利点はほぼ同じですが、パッケージ形式とツールはプラットフォームによって異なります。

Operating System Format Tool(s)

Debian

.deb

apt, apt-cache, apt-get, dpkg

Ubuntu

.deb

apt, apt-cache, apt-get, dpkg

CentOS

.rpm

yum

Fedora

.rpm

dnf

FreeBSD

Ports, .txz

make, pkg

Debianおよびそれに基づくシステム(Ubuntu、Linux Mint、Raspbianなど)では、パッケージ形式は `+ .deb `ファイルです。 APT(Advanced Packaging Tool)は、リポジトリの検索、パッケージのコレクションとその依存関係のインストール、アップグレードの管理など、最も一般的な操作に使用されるコマンドを提供します。 APTコマンドは、ローカルシステム上の個々の ` .deb `ファイルのインストールを処理する下位レベルの ` dpkg +`ユーティリティのフロントエンドとして動作し、直接呼び出されることもあります。

ほとんどのDebian派生ディストリビューションの最近のリリースには、より具体的な `+ apt-get `と ` apt-cache `によって従来処理されてきた一般的な操作への簡潔で統一されたインターフェースを提供する ` apt +`コマンドが含まれます。 その使用はオプションですが、一部のタスクを簡素化できます。

CentOS、Fedora、およびRed Hatファミリーの他のメンバーはRPMファイルを使用します。 CentOSでは、個々のパッケージファイルとリポジトリの両方とやり取りするために「+ yum +」が使用されます。

Fedoraの最近のバージョンでは、 `+ yum `のインターフェースの大部分を保持する近代化されたフォークである ` dnf `によって ` yum +`が置き換えられました。

FreeBSDのバイナリパッケージシステムは、 `+ pkg `コマンドで管理されます。 FreeBSDは、ユーザーがMakefileを使用してソースから直接パッケージを取得、コンパイル、およびインストールできるようにするローカルディレクトリ構造とツールであるPorts Collectionも提供します。 通常、「 pkg +」を使用する方がはるかに便利ですが、場合によっては、プリコンパイル済みパッケージが利用できないか、コンパイル時オプションを変更する必要があります。

パッケージリストの更新

ほとんどのシステムは、リモートリポジトリから利用可能なパッケージのローカルデータベースを保持しています。 パッケージをインストールまたはアップグレードする前に、このデータベースを更新することをお勧めします。 このパターンの部分的な例外として、 `+ yum `と ` dnf +`はいくつかの操作を実行する前に更新をチェックしますが、更新が利用可能かどうかはいつでも確認できます。

System Command

Debian / Ubuntu

sudo apt-get update

sudo apt update

CentOS

yum check-update

Fedora

dnf check-update

FreeBSD Packages

sudo pkg update

FreeBSD Ports

sudo portsnap fetch update

インストール済みパッケージのアップグレード

マシンにインストールされているすべてのソフトウェアを最新の状態に保つことは、パッケージシステムを使用せずに膨大な作業を行うことです。 数百の異なるパッケージのアップストリームの変更とセキュリティアラートを追跡する必要があります。 パッケージマネージャーは、ソフトウェアのアップグレード時に発生するすべての問題を解決するわけではありませんが、ほとんどのシステムコンポーネントをいくつかのコマンドで保守できます。

FreeBSDでは、インストールされたポートをアップグレードすると、重大な変更が導入されたり、手動の構成手順が必要になる場合があります。 `+ portmaster `でアップグレードする前に ` / usr / ports / UPDATING +`を読むのが最善です。

System Command Notes

Debian / Ubuntu

sudo apt-get upgrade

Only upgrades installed packages, where possible.

sudo apt-get dist-upgrade

May add or remove packages to satisfy new dependencies.

sudo apt upgrade

Like apt-get upgrade.

sudo apt full-upgrade

Like apt-get dist-upgrade.

CentOS

sudo yum update

Fedora

sudo dnf upgrade

FreeBSD Packages

sudo pkg upgrade

FreeBSD Ports

less /usr/ports/UPDATING

Uses less to view update notes for ports (use arrow keys to scroll, press q to quit).

cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a

Installs portmaster and uses it to update installed ports.

パッケージを探す

ほとんどのディストリビューションは、パッケージコレクションにグラフィカルまたはメニュー方式のフロントエンドを提供します。 これらは、カテゴリ別に閲覧し、新しいソフトウェアを発見するための良い方法です。 ただし、多くの場合、パッケージを見つける最も迅速で効果的な方法は、コマンドラインツールで検索することです。

System Command Notes

Debian / Ubuntu

+apt-cache search +

+apt search +

CentOS

+yum search +

+yum search all +

Searches all fields, including description.

Fedora

+dnf search +

+dnf search all +

Searches all fields, including description.

FreeBSD Packages

+pkg search +

Searches by name.

+pkg search -f +

Searches by name, returning full descriptions.

+pkg search -D +

Searches description.

FreeBSD Ports

cd /usr/ports && make search name=

Searches by name.

cd /usr/ports && make search key=

Searches comments, descriptions, and dependencies.

特定のパッケージに関する情報を表示する

何をインストールするかを決定するとき、パッケージの詳細な説明を読むと役立つことがよくあります。 人間が読めるテキストに加えて、これらには多くの場合、バージョン番号やパッケージの依存関係のリストなどのメタデータが含まれます。

System Command Notes

Debian / Ubuntu

+apt-cache show +

Shows locally-cached info about a package.

+apt show +

+dpkg -s +

Shows the current installed status of a package.

CentOS

+yum info +

+yum deplist +

Lists dependencies for a package.

Fedora

+dnf info +

+dnf repoquery --requires +

Lists dependencies for a package.

FreeBSD Packages

+pkg info +

Shows info for an installed package.

FreeBSD Ports

cd /usr/ports// && cat pkg-descr

リポジトリからパッケージをインストールする

パッケージの名前がわかれば、通常は単一のコマンドでパッケージとその依存関係をインストールできます。 一般に、すべてのパッケージをリストするだけで、インストールする複数のパッケージを提供できます。

System Command Notes

Debian / Ubuntu

+sudo apt-get install +

+sudo apt-get install +

Installs all listed packages.

+sudo apt-get install -y +

Assumes “yes” where apt would usually prompt to continue.

+sudo apt install +

Displays a colored progress bar.

CentOS

+sudo yum install +

+sudo yum install +

Installs all listed packages.

+sudo yum install -y +

Assumes “yes” where yum would usually prompt to continue.

Fedora

+sudo dnf install +

+sudo dnf install +

Installs all listed packages.

+sudo dnf install -y +

Assumes “yes” where dnf would usually prompt to continue.

FreeBSD Packages

+sudo pkg install +

+sudo pkg install +

Installs all listed packages.

FreeBSD Ports

cd /usr/ports// && sudo make install

Builds and installs a port from source.

ローカルファイルシステムからパッケージをインストールする

ソフトウェアが特定のオペレーティングシステム用に正式にパッケージ化されていない場合でも、開発者またはベンダーがダウンロード用のパッケージファイルを提供する場合があります。 通常、これらはWebブラウザで取得するか、コマンドラインの「+ curl +」で取得できます。 パッケージがターゲットシステムにインストールされると、多くの場合、1つのコマンドでインストールできます。

Debian派生システムでは、 `+ dpkg `は個々のパッケージファイルを処理します。 パッケージの依存関係が満たされていない場合、 ` gdebi +`を使用して公式リポジトリからそれらを取得できます。

CentOSおよびFedoraシステムでは、「+ yum 」と「 dnf +」を使用して個々のファイルをインストールし、必要な依存関係も処理します。

System Command Notes

Debian / Ubuntu

+sudo dpkg -i +

+sudo apt-get install -y && sudo gdebi +

Installs and uses gdebi to install ++ and retrieve any missing dependencies.

CentOS

+sudo yum install +

Fedora

+sudo dnf install +

FreeBSD Packages

+sudo pkg add +

+sudo pkg add -f +

Installs package even if already installed.

1つ以上のインストール済みパッケージを削除する

パッケージマネージャーは、特定のパッケージによって提供されるファイルを知っているため、ソフトウェアが不要になった場合、通常はシステムからそれらをきれいに削除できます。

System Command Notes

Debian / Ubuntu

+sudo apt-get remove +

+sudo apt remove +

sudo apt-get autoremove

Removes unneeded packages.

CentOS

+sudo yum remove +

Fedora

+sudo dnf erase +

FreeBSD Packages

+sudo pkg delete +

sudo pkg autoremove

Removes unneeded packages.

FreeBSD Ports

+sudo pkg delete +

cd /usr/ports/ && make deinstall

De-installs an installed port.

`+ apt +`コマンド

Debianファミリディストリビューションの管理者は、一般に + apt-get`と + apt-cache`に精通しています。 あまり知られていないのは、インタラクティブな使用のために特別に設計された、単純化された `+ apt +`インターフェースです。

Traditional Command apt Equivalent

apt-get update

apt update

apt-get dist-upgrade

apt full-upgrade

+apt-cache search +

+apt search +

+apt-get install +

+apt install +

+apt-get remove +

+apt remove +

+apt-get purge +

+apt purge +

「+ apt 」は多くの場合、特定の操作のより簡単な省略形ですが、従来のツールを完全に置き換えるものではなく、使いやすさを向上させるためにバージョン間でインターフェースが変更される場合があります。 スクリプトまたはシェルパイプライン内でパッケージ管理コマンドを使用している場合は、 ` apt-get `および ` apt-cache +`を使用することをお勧めします。

助けを得ます

Webベースのドキュメントに加えて、シェルからのほとんどのコマンドでUnixマニュアルページ(通常* manページ*と呼ばれる)が利用可能であることに注意してください。 ページを読むには、 `+ man +`を使用します:

man

`+ man +`では、矢印キーでナビゲートできます。 * / を押してページ内のテキストを検索し、 q *を押して終了します。

System Command Notes

Debian / Ubuntu

man apt-get

Updating the local package database and working with packages.

man apt-cache

Querying the local package database.

man dpkg

Working with individual package files and querying installed packages.

man apt

Working with a more concise, user-friendly interface to most basic operations.

CentOS

man yum

Fedora

man dnf

FreeBSD Packages

man pkg

Working with pre-compiled binary packages.

FreeBSD Ports

man ports

Working with the Ports Collection.

結論とさらに読む

このガイドでは、システム間で相互参照できる基本的な操作の概要を説明しますが、複雑なトピックの表面のみをスクラッチします。 特定のシステムの詳細については、次のリソースを参照してください。