技術ノート Linux および macOS ターミナル Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

Linux でソフトウェアをコンパイルする際に最も難しい部分は、その依存関係を見つけてインストールすることです。 Ubuntu には、依存関係を自動的に検出、特定、インストールする apt コマンドがあり、面倒な作業を自動的に実行します。

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

最近、 Ubuntu でソフトウェアをソースからコンパイルする 基本について説明しました。まだ始めたばかりの場合は、元の記事を参照してください。

自動適切化

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

Auto-apt は、./configure コマンドを実行するときに監視して待機します。 ./configure が存在しないファイルにアクセスしようとすると、auto-apt は ./configure プロセスを保留し、適切なパッケージをインストールして ./configure プロセスを続行させます。

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

まず、次のコマンドで auto-apt をインストールします。

sudo apt-get install auto-apt

インストールしたら、次のコマンドを実行して、auto-apt に必要なファイル リストをダウンロードします。このプロセスには数分かかります。

sudo自動aptアップデート

最初のコマンドが完了したら、次のコマンドを実行してデータベースを更新します。これらのコマンドにも数分かかります。

sudo auto-apt updatedb && sudo auto-apt update-local

auto-apt のデータベースの構築が完了したら、次のコマンドを使用して ./configure プロセスを開始できます。

sudo auto-apt run ./configure

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

apt ファイル

特定のファイルが見つからないというエラー メッセージが表示された場合は、ファイルを取得するためにインストールする必要があるパッケージがわからない可能性があります。 apt-file を使用すると、単一のコマンドで特定のファイルを含むパッケージを検索できます。

まず、apt ファイル自体をインストールする必要があります。

sudo apt-get install apt-file

インストール後、次のコマンドを実行して、構成された apt リポジトリからファイル リストをダウンロードします。これらのリストは大きいため、ダウンロードには数分かかります。

sudo apt ファイルの更新

「example.pc」をファイル名に置き換えて次のコマンドを実行すると、インストールする必要があるパッケージが正確に表示されます。

apt-file 検索ファイル example.pc

標準の apt-get install コマンドを使用してパッケージをインストールします。

sudo apt-get インストールパッケージ

Ubuntu Package Search Web サイトからファイル検索を実行することもできます。特定のファイルを検索するには、ページの「パッケージの内容を検索」セクションを使用します。

apt-file と同じ結果が得られ、ファイルリストをダウンロードする必要はありません。

Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法

Apt-Get Build-Dep

最初の投稿で apt-get build-dep について説明しました。インストールしようとしているプログラムの以前のバージョンがすでに Ubuntu のパッケージ リポジトリにある場合、Ubuntu は必要な依存関係をすでに認識しています。

次のコマンドを入力して、「package」をパッケージの名前に置き換えると、apt-get によって必要な依存関係がインストールされます。

sudo apt-get build-dep パッケージ

Apt-get は、必要な依存関係をすべてインストールするように求めます。

新しいバージョンのプログラムで異なる依存関係が必要な場合は、追加の依存関係を手動でインストールする必要がある場合があります。


これらのコマンドはすべて apt-get を使用するため、Debian、Linux Mint、および apt-get および .deb パッケージを使用するその他の Linux ディストリビューションでも実行できます。

「 Ubuntu でソフトウェアをコンパイルする際に依存関係を解決する方法」に関するベスト動画選定!

【Linuxコマンドの基本01】 ファイルを管理する Bash上でファイル、ディレクトリを作る、消す、そして、ファイルとはなにか、ディレクトリとは? 初心者にわかりやすく解説。
これで安心‼Linuxのセキュリティー対策 ~ずんだもんのLinux「使ってみた」第6回~