前書き
最新のUnixライクなオペレーティングシステムは、ソフトウェアを見つけてインストールするための集中メカニズムを提供します。 ソフトウェアは通常、packagesの形式で配布され、repositoriesに保持されます。 パッケージの操作はpackage managementとして知られています。 パッケージは、共有ライブラリ、アプリケーション、サービス、およびドキュメントとともに、オペレーティングシステムの基本コンポーネントを提供します。
パッケージ管理システムは、ソフトウェアの1回限りのインストール以上のことを行います。 また、インストール済みのパッケージをアップグレードするためのツールも提供します。 パッケージリポジトリは、システムで使用するためにコードが吟味されていること、およびソフトウェアのインストールされたバージョンが開発者とパッケージメンテナーによって承認されていることを確認するのに役立ちます。
サーバーまたは開発環境を構成する場合、多くの場合、公式リポジトリを超えて見る必要があります。 ディストリビューションの安定版リリースのパッケージは、特に新しいソフトウェアまたは急速に変化するソフトウェアが懸念される場合、古くなっている可能性があります。 それにもかかわらず、パッケージ管理はシステム管理者および開発者にとって不可欠なスキルであり、主要なディストリビューション用のパッケージ化されたソフトウェアの豊富さは膨大なリソースです。
このガイドは、さまざまなディストリビューションでパッケージを検索、インストール、およびアップグレードするための基本事項のクイックリファレンスとして意図されており、システム間でその知識を翻訳するのに役立ちます。
パッケージ管理システム:簡単な概要
ほとんどのパッケージシステムは、パッケージファイルのコレクションを中心に構築されています。 通常、パッケージファイルは、インストールスクリプトとともに、コンパイルされたバイナリおよびソフトウェアを構成する他のリソースを含むアーカイブです。 パッケージには、dependencies、インストールと実行に必要な他のパッケージのリストなど、貴重なメタデータも含まれています。
機能と利点はほぼ同じですが、パッケージ形式とツールはプラットフォームによって異なります。
オペレーティング・システム | フォーマット | ツール |
---|---|---|
Debian |
|
|
ウブンツ |
|
|
CentOS |
|
|
フェドラ |
|
|
FreeBSD |
ポート、 |
|
Debianと、Ubuntu、Linux Mint、Raspbianなどのそれに基づくシステムでは、パッケージ形式は.deb
ファイルです。 APT(Advanced Packaging Tool)は、リポジトリの検索、パッケージのコレクションとその依存関係のインストール、アップグレードの管理など、最も一般的な操作に使用されるコマンドを提供します。 APTコマンドは、ローカルシステムへの個々の.deb
ファイルのインストールを処理する、下位レベルのdpkg
ユーティリティのフロントエンドとして機能し、直接呼び出されることもあります。
ほとんどのDebian派生ディストリビューションの最近のリリースには、apt
コマンドが含まれています。このコマンドは、より具体的なapt-get
およびapt-cache
によって従来処理されてきた一般的な操作への簡潔で統一されたインターフェイスを提供します。 その使用はオプションですが、一部のタスクを簡素化できます。
CentOS、Fedora、およびRed Hatファミリーの他のメンバーはRPMファイルを使用します。 CentOSでは、yum
は、個々のパッケージファイルとリポジトリの両方と対話するために使用されます。
Fedoraの最近のバージョンでは、yum
はdnf
に取って代わられました。これは、yum
のインターフェースのほとんどを保持する最新のフォークです。
FreeBSDのバイナリパッケージシステムは、pkg
コマンドで管理されます。 FreeBSDは、ユーザーがMakefileを使用してソースから直接パッケージを取得、コンパイル、およびインストールできるようにするローカルディレクトリ構造とツールであるPorts Collectionも提供します。 通常はpkg
を使用する方がはるかに便利ですが、プリコンパイルされたパッケージが利用できない場合や、コンパイル時のオプションを変更する必要がある場合があります。
パッケージリストの更新
ほとんどのシステムは、リモートリポジトリから利用可能なパッケージのローカルデータベースを保持しています。 パッケージをインストールまたはアップグレードする前に、このデータベースを更新することをお勧めします。 このパターンの部分的な例外として、yum
とdnf
は一部の操作を実行する前に更新を確認しますが、更新が利用可能かどうかはいつでも確認できます。
システム | コマンド |
---|---|
Debian / Ubuntu |
|
|
|
CentOS |
|
フェドラ |
|
FreeBSDパッケージ |
|
FreeBSDポート |
|
インストール済みパッケージのアップグレード
マシンにインストールされているすべてのソフトウェアを最新の状態に保つことは、パッケージシステムを使用せずに膨大な作業を行うことです。 数百の異なるパッケージのアップストリームの変更とセキュリティアラートを追跡する必要があります。 パッケージマネージャーは、ソフトウェアのアップグレード時に発生するすべての問題を解決するわけではありませんが、ほとんどのシステムコンポーネントをいくつかのコマンドで保守できます。
FreeBSDでは、インストールされたポートをアップグレードすると、重大な変更が導入されたり、手動の構成手順が必要になる場合があります。 portmaster
でアップグレードする前に、/usr/ports/UPDATING
を読むことをお勧めします。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
可能な場合は、インストールされたパッケージのみをアップグレードします。 |
|
新しい依存関係を満たすためにパッケージを追加または削除できます。 |
|
|
|
|
|
|
|
CentOS |
|
|
フェドラ |
|
|
FreeBSDパッケージ |
|
|
FreeBSDポート |
|
|
|
|
パッケージを探す
ほとんどのディストリビューションは、パッケージコレクションにグラフィカルまたはメニュー方式のフロントエンドを提供します。 これらは、カテゴリ別に閲覧し、新しいソフトウェアを発見するための良い方法です。 ただし、多くの場合、パッケージを見つける最も迅速で効果的な方法は、コマンドラインツールで検索することです。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
|
|
||
CentOS |
|
|
|
説明を含むすべてのフィールドを検索します。 |
|
フェドラ |
|
|
|
説明を含むすべてのフィールドを検索します。 |
|
FreeBSDパッケージ |
|
名前で検索します。 |
|
名前で検索し、完全な説明を返します。 |
|
|
説明を検索します。 |
|
FreeBSDポート |
|
名前で検索します。 |
|
コメント、説明、および依存関係を検索します。 |
特定のパッケージに関する情報を表示する
何をインストールするかを決定するとき、パッケージの詳細な説明を読むと役立つことがよくあります。 人間が読めるテキストに加えて、これらには多くの場合、バージョン番号やパッケージの依存関係のリストなどのメタデータが含まれます。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
パッケージに関するローカルにキャッシュされた情報を表示します。 |
|
||
|
パッケージの現在のインストールステータスを表示します。 |
|
CentOS |
|
|
|
パッケージの依存関係を一覧表示します。 |
|
フェドラ |
|
|
|
パッケージの依存関係を一覧表示します。 |
|
FreeBSDパッケージ |
|
インストールされているパッケージの情報を表示します。 |
FreeBSDポート |
|
リポジトリからパッケージをインストールする
パッケージの名前がわかれば、通常は単一のコマンドでパッケージとその依存関係をインストールできます。 一般に、すべてのパッケージをリストするだけで、インストールする複数のパッケージを提供できます。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
|
|
リストされているすべてのパッケージをインストールします。 |
|
|
|
|
|
色付きのプログレスバーを表示します。 |
|
CentOS |
|
|
|
リストされているすべてのパッケージをインストールします。 |
|
|
|
|
フェドラ |
|
|
|
リストされているすべてのパッケージをインストールします。 |
|
|
|
|
FreeBSDパッケージ |
|
|
|
リストされているすべてのパッケージをインストールします。 |
|
FreeBSDポート |
|
ソースからポートを構築してインストールします。 |
ローカルファイルシステムからパッケージをインストールする
ソフトウェアが特定のオペレーティングシステム用に正式にパッケージ化されていない場合でも、開発者またはベンダーがダウンロード用のパッケージファイルを提供することがあります。 これらは通常、Webブラウザーを使用するか、コマンドラインのcurl
を介して取得できます。 パッケージがターゲットシステムに配置されると、多くの場合、1つのコマンドでインストールできます。
Debianから派生したシステムでは、dpkg
は個々のパッケージファイルを処理します。 パッケージに満たされていない依存関係がある場合、gdebi
を使用して公式リポジトリからそれらを取得できます。
CentOSおよびFedoraシステムでは、yum
およびdnf
を使用して個々のファイルをインストールし、必要な依存関係も処理します。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
|
|
|
|
CentOS |
|
|
フェドラ |
|
|
FreeBSDパッケージ |
|
|
|
すでにインストールされている場合でも、パッケージをインストールします。 |
1つ以上のインストール済みパッケージを削除する
パッケージマネージャーは、特定のパッケージによって提供されるファイルを知っているため、ソフトウェアが不要になった場合、通常はシステムからそれらをきれいに削除できます。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
|
|
||
|
不要なパッケージを削除します。 |
|
CentOS |
|
|
フェドラ |
|
|
FreeBSDパッケージ |
|
|
|
不要なパッケージを削除します。 |
|
FreeBSDポート |
|
|
|
インストールされているポートを削除します。 |
apt
コマンド
Debianファミリのディストリビューションの管理者は、一般的にapt-get
とapt-cache
に精通しています。 あまり広く知られていないのは、インタラクティブな使用のために特別に設計された、簡略化されたapt
インターフェースです。
従来のコマンド | apt 相当 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
apt
は多くの場合、特定の操作の省略形ですが、従来のツールを完全に置き換えることを目的としたものではなく、使いやすさを向上させるためにバージョン間でインターフェースが変更される場合があります。 スクリプトまたはシェルパイプライン内でパッケージ管理コマンドを使用している場合は、apt-get
とapt-cache
を使用することをお勧めします。
助けを得ます
Webベースのドキュメントに加えて、Unixマニュアルページ(通常はman pagesと呼ばれます)がシェルからのほとんどのコマンドで利用できることに注意してください。 ページを読むには、man
を使用します。
man page
man
では、矢印キーを使用してナビゲートできます。 /を押してページ内のテキストを検索し、qを押して終了します。
システム | コマンド | ノート |
---|---|---|
Debian / Ubuntu |
|
ローカルパッケージデータベースの更新とパッケージの操作。 |
|
ローカルパッケージデータベースのクエリ。 |
|
|
個々のパッケージファイルを操作し、インストールされているパッケージを照会します。 |
|
|
ほとんどの基本的な操作に対して、より簡潔でユーザーフレンドリーなインターフェースを使用します。 |
|
CentOS |
|
|
フェドラ |
|
|
FreeBSDパッケージ |
|
コンパイル済みのバイナリパッケージの操作。 |
FreeBSDポート |
|
PortsCollectionの操作。 |
結論とさらに読む
このガイドでは、システム間で相互参照できる基本的な操作の概要を説明しますが、複雑なトピックの表面のみをスクラッチします。 特定のシステムの詳細については、次のリソースを参照してください。
-
This guideは、UbuntuとDebianのパッケージ管理について詳しく説明しています。
-
Fedora wiki page about
dnf
とofficial manual fordnf
itselfがあります。 -
This guideは、
pkg
を使用したFreeBSDパッケージ管理をカバーしています。 -
FreeBSD Handbookにはsection on using the Ports Collectionが含まれています。