Ubuntu / Debianでは、コマンドラインからアプリケーションをインストールするのは非常に簡単です。必要なのは、aptinstallpackage_nameを使用することだけです。
しかし、インストール前またはインストール後のパッケージの依存関係を知りたい場合はどうでしょうか。
このチュートリアルでは、UbuntuおよびAPTパッケージ管理システムを使用する他のDebianベースのLinuxディストリビューションでパッケージの依存関係を確認するさまざまな方法を紹介します。
Ubuntuのパッケージ依存関係とは何ですか?
まだ知らなかった場合は、Linuxにソフトウェアパッケージをインストールするときに、正しく機能するために他のパッケージが必要になることがあります。これらの追加パッケージは依存関係と呼ばれます。これらの依存関係パッケージがシステムにインストールされていない場合、通常はパッケージとともに自動的にインストールされます。
たとえば、ビデオ形式を変換するためのGUIツールHandBrakeには、FFmpeg、GStreamerが必要です。したがって、HandBrakeの場合、FFmpegとGStreamerが依存関係になります。
これらのパッケージがシステムにインストールされていない場合、UbuntuにHandBrakeをインストールすると自動的にインストールされます。
UbuntuおよびDebianベースのディストリビューションでパッケージの依存関係を確認する
Linuxでよくあることですが、同じ結果を得るには複数の方法があります。パッケージの依存関係を確認するさまざまな方法を見てみましょう。
aptshowで依存関係を確認する
apt showコマンドを使用して、パッケージの詳細を表示できます。この情報の一部は依存関係であり、Dependsで始まる行に表示されます。
たとえば、ubuntu-restricted-extrasパッケージの場合は次のように表示されます。
[email protected]:~$ apt show ubuntu-restricted-extras
Package: ubuntu-restricted-extras
Version: 67
Priority: optional
Section: multiverse/metapackages
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 14.3 kB
Depends: ubuntu-restricted-addons
Recommends: libavcodec-extra, ttf-mscorefonts-installer, unrar
Download-Size: 3,200 B
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
Description: Commonly used media codecs and fonts for Ubuntu
This collection of packages includes:
- MP3 and other audio codec software to play various audio formats
(GStreamer plugins)
- software to install the Microsoft Web fonts
- the Adobe Flash plugin
- LAME, software to create compressed audio files.
.
This software does not include libdvdcss2, and will not let you play
encrypted DVDs. For more information, see
https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs
.
These software packages are from the Multiverse channel, restricted by
copyright or legal issues in some countries. For more information, see
http://www.ubuntu.com/ubuntu/licensing
ご覧のとおり、ubuntu-restricted-extrasパッケージはubuntu-restricted-addonsパッケージに依存しています。
これがキャッチです!依存関係パッケージは他のパッケージにも依存している可能性があり、チェーンが続く可能性があります。ありがたいことに、APTパッケージマネージャーは、すべての依存関係を自動的にインストールすることでこれを処理します(ほとんどの場合)。
おすすめのパッケージは何ですか?
上記の出力でRecommendsで始まる行に気づきましたか?
推奨されるパッケージは、パッケージの直接の依存関係ではありませんが、追加機能を有効にします。
ご覧のとおり、ubuntu-restricted-extrasには、UbuntuにMicrosoftフォントをインストールするための推奨パッケージとしてttf-mscorefonts-installerがあります。
推奨パッケージもデフォルトでインストールされます。推奨パッケージのインストールを明示的に禁止する場合は、次のような–no-install-recommendsフラグを使用してください。
sudo apt install –no-install-recommends package_name
依存関係情報のみを取得するにはapt-cacheを使用します
aptショーには情報が多すぎます。スクリプトで依存関係を取得する場合は、apt-cacheコマンドを使用するとより適切でクリーンな出力が得られます。
apt-cache depends package_name
出力はかなりきれいに見えますね?
dpkgを使用してDEBファイルの依存関係を確認する
aptコマンドとapt-cacheコマンドはどちらも、リポジトリから入手できるパッケージで機能します。ただし、DEBファイルをダウンロードすると、これらのコマンドは機能しません。
この場合、-Iまたは–infoオプションを指定してdpkgコマンドを使用できます。
dpkg -I path_to_deb_file
依存関係は、Dependsで始まる行に表示されます。
apt-rdependsを使用した依存関係と逆依存関係の確認
依存関係の詳細が必要な場合は、apt-rdependsツールを使用できます。このツールは、完全な依存関係ツリーを作成します。したがって、パッケージの依存関係と依存関係の依存関係も取得します。
これは通常のaptコマンドではないため、ユニバースリポジトリからインストールする必要があります:
sudo apt install apt-rdepends
依存関係ツリーによっては、通常、出力は非常に大きくなります。
Reading package lists... Done
Building dependency tree
Reading state information... Done
shutter
Depends: procps
Depends: xdg-utils
imagemagick
Depends: imagemagick-6.q16 (>= 8:6.9.2.10+dfsg-2~)
imagemagick-6.q16
Depends: hicolor-icon-theme
Depends: libc6 (>= 2.4)
Depends: libmagickcore-6.q16-6 (>= 8:6.9.10.2)
Depends: libmagickwand-6.q16-6 (>= 8:6.9.10.2)
hicolor-icon-theme
libc6
Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4)
Depends: libgcc-s1
libcrypt1
Depends: libc6 (>= 2.25)
apt-rdependsツールは非常に用途が広いです。また、逆依存関係を計算することもできます。つまり、特定のパッケージに依存している他のパッケージを確認できます。
apt-rdepends -r package_name
逆依存関係ツリーが出力されるため、出力はかなり大きくなる可能性があります。
[email protected]:~$ apt-rdepends -r ffmpeg
Reading package lists... Done
Building dependency tree
Reading state information... Done
ffmpeg
Reverse Depends: ardour-video-timeline (>= 1:5.12.0-3ubuntu4)
Reverse Depends: deepin-screen-recorder (5.0.0-1build2)
Reverse Depends: devede (4.15.0-2)
Reverse Depends: dvd-slideshow (0.8.6.1-1)
Reverse Depends: green-recorder (>= 3.2.3)
このクイックチュートリアルが、コマンドラインの知識を少し向上させるのに役立つことを願っています。このようなヒントにご期待ください。