Ubuntuリポジトリでアプリケーションまたはライブラリが他のアプリケーションまたはライブラリに依存している場合は、apt-getを介してインストールすると、まず依存関係を自動的にダウンロードしてインストールします。たとえば、バイナリインストールファイルからインストールする方法ですか.deb
?
ソースからビルドしてアプリケーションやライブラリをインストールすると、どの依存./configure
関係が欠けているかがわかりますので、まず手動でインストールします。
Ubuntu ppaなどのサイトからダウンロードしたファイルを実行してアプリケーションをインストールするときに依存関係を.deb
処理する必要があったことを覚えていません。.deb
ファイルの内容に依存関係が含まれていますか?それとも自動的にダウンロードしてインストールしますか?
答え1
リポジトリからパッケージのリストをインポートすると、すべてのパッケージに関する情報を次の形式で見つけるapt-get update
ことができます/var/lib/apt
。/var/lib/dpkg
Package: apt
Priority: important
Section: admin
Installed-Size: 3462
Maintainer: APT Development Team <[email protected]>
Architecture: i386
Version: 1.3.1
Replaces: apt-utils (<< 1.3~exp2~)
Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, init-system-helpers (>= 1.18~), libapt-pkg5.0 (>= 1.3~rc2), libc6 (>= 2.15), libgcc1 (>= 1:4.2), libstdc++6 (>= 5.2)
Recommends: gnupg | gnupg2 | gnupg1
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), powermgmt-base, python-apt
Breaks: apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.3.1_i386.deb
Size: 1208426
MD5sum: 9d35afa0f8220cabf0c837f8073569c2
Description: commandline package manager
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Tag: admin::package-management, devel::lang:ruby, hardware::storage,
hardware::storage:cd, implemented-in::c++, implemented-in::perl,
implemented-in::ruby, interface::commandline, network::client,
protocol::ftp, protocol::http, protocol::ipv6, role::program,
scope::application, scope::utility, sound::player, suite::debian,
use::downloading, use::organizing, use::searching, works-with::audio,
works-with::software:package, works-with::text
SHA256: 9111e4e9ffe3f3dd3c62c4e67485d3495c15bf5d24f4f1c532db4430b389eb19
debian/control
この情報は.deb
各パッケージのファイルとしても存在します。ご覧のとおり、これにはすべてのDepends: ...
依存関係を一覧表示する1行が含まれています。これらの依存関係に基づいてapt-get
インストールする必要があるすべてのパッケージを繰り返し計算します。
パッケージマネージャは、パッケージを直接コンパイルするときに手動でパッケージを追加する方法と同様に、パッケージを作成するときにこの情報を追加します(これをサポートするツールがあるにもかかわらず)。
答え2
.deb
最初にパッケージを作成した人が説明した手動インストールプロセスと同様のプロセスに従いました。このタスクを実行するとき(作業を正しく実行した場合)、debian/control
ソースパッケージファイルに必要な依存関係に関する情報も追加します。
apt-get
他のdpkg
フロントエンドは、実際には.deb
パッケージと関連パッケージデータベースとそのパッケージに関するメタ情報でのみ機能します。場合によっては.deb
、チェーン全体が正しく機能し、自動依存関係のインストールなどの利点を得るために、ローカルに生成されたパッケージを作成したい場合があります。
答え3
dpkg -i
依存関係がない(不足している)一部のパッケージをインストール(使用)しようとすると、欠落している*.deb
パッケージを知らせるエラーメッセージが表示されます。その後、不足しているパッケージをapt-get install
復元できます。aptitude install