何年も前、Linuxの様々なソフトウェアはソースコードのみ配布されていました。 そのソフトウェアを使用するためには、ソースからコンパイルする必要がありました。 あるソフトウェアのソースが他のライブラリに依存している場合、インストールしたいソフトウェアをコンパイルする前に、そのライブラリのソースコードもダウンロードし、コンパイルする必要がありました。 そのライブラリが他のライブラリに依存している場合は、そのライブラリのソースコードもダウンロードしてコンパイルしなければならない。 当時は “依存性地獄 “と呼ばれた、依存性の問題を一通り経験しなければならなかったのです。 今のようなパッケージングシステムもありませんでした。 最近では、パッケージは異なるマシンアーキテクチャ用にあらかじめコンパイルされ、中央サーバ (パッケージリポジトリと呼ばれます) に保管され、パッケージ管理ソフトウェアが自動的にダウンロード、依存関係の解決、インストールを行います。
Debian GNU/Linux、Ubuntu、Linux Mint などの Debian ベースの Linux ディストリビューションでは、APT パッケージマネージャが使用されています。 APT パッケージマネージャのパッケージ形式は DEB アーカイブです。 DEBアーカイブの拡張子は.debです。
最近では、一般的なソフトウェアパッケージは、使用しているLinuxディストリビューションの公式パッケージリポジトリで提供されています。 ですから、パッケージマネージャ (Ubuntu/Debian の場合は APT パッケージマネージャ) を使って簡単にインストールすることができます。 しかし、欲しいソフトウェアが公式パッケージリポジトリにない場合、そのソフトウェアの公式ウェブサイトから DEB パッケージファイルをダウンロードし、手動で Ubuntu/Debian オペレーティングシステムにインストールしなければならないことがあります。 デモには、Ubuntu 18.04 LTS を使用するつもりです。
Ubuntuでは、dpkgコマンドを使用してDEBファイルをインストールできます。
私は、デモのためにhttps://packages.ubuntu.comからApache 2 web server DEB ファイルをダウンロードしました。 もちろん、APT パッケージ マネージャで非常に簡単にインストールすることができます。
次に、DEB ファイルと同じディレクトリでターミナルを開いてください。
ここで、以下のコマンドでインストールします:
ご覧のように、依存関係を解決できなかったため、インストールは失敗しています。 DEB パッケージ apache2 は apache2-bin, apache2-utils, apache2-data に依存しており、いずれもインストールされていません。
依存関係を解決するには、Apache2 パッケージをインストールする前にこれらのパッケージをインストールしなければなりません。 そこで、次のコマンドを実行するだけです:
ご覧のように APT パッケージマネージャーはすべての依存関係を自動的に解決しています。 ここで y を押して、<Enter> を押してください。
The package apache2 should be installed.
見ての通りApache 2は動きますね。
依存パッケージがUbuntuの公式パッケージリポジトリで利用できないことがあります。 その場合、インターネット上で必要な DEB パッケージを見つけ、同様に dpkg を使用してそれをインストールする必要があります。 また、これらの依存パッケージが持つ依存関係も解決しなければなりません。
Ubuntu Software Center を使用して DEB ファイルをインストールする:
Ubuntu Software Center を使用して DEB ファイルをインストールすることもできます。 DEB ファイルを右クリックして、「ソフトウェアインストールで開く」をクリックします。
次に「インストール」をクリックします。
次にパスワードを入力して「認証」をクリックしてください。
依存関係がUbuntuのパッケージリポジトリにあれば自動的に解決され、ソフトウェアがインストールされるはずです。
インストールが完了すると、次のウィンドウが表示されます。
依存パッケージが Ubuntu の公式パッケージレポジトリまたは PPA を通じて追加したパッケージレポジトリのいずれかで使用できない場合、インストールは成功します。 その場合、同様に依存パッケージを手動で見つけてインストールする必要があります。
So これが Ubuntu に DEB ファイルをインストールする方法です。 この記事を読んでいただきありがとうございます。