Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxでソフトウェアパッケージをコンパイルする方法|ソースコードからのビルド手順を徹底解説

WindowsからLinuxへ移行したユーザーが最初につまずきやすいポイントの一つが、「欲しいソフトウェアが必ずしもすぐに使える状態で提供されているとは限らない」という考え方です。Windowsでは多くの場合、EXE形式のインストーラーやZIPファイルとして完成済みのソフトウェアが配布されていますが、Linuxではソースコードから自分でコンパイル(ビルド)する必要があるケースも少なくありません。

本記事では、Linux上でソフトウェアパッケージをコンパイルするための基本的な流れを、初心者にもわかりやすく解説します。大まかな手順は以下の通りです。

  • ソースコードをダウンロードする
  • configureコマンドを実行して環境を確認する
  • 不足している依存パッケージをインストールする
  • makeコマンドでコンパイルを開始する

それでは、順番に見ていきましょう。

ソースファイルのダウンロード

ソフトウェアのビルドを始める前に、まずはソースコードを入手する必要があります。自分で開発したパッケージであれば、すでにソースコードを持っているはずです。

しかし、多くの場合は他の開発者が公開しているソフトウェアをコンパイルすることになります。GitHubなどのコード共有サイトでは、公開されているパッケージのソースコードを閲覧・ダウンロードできます。バージョン管理システムとして広く使われているGitを使えば、次のようなコマンドでリポジトリをPCにクローンできます。

git clone https://github.com/ユーザー名/リポジトリ名.git

また、VLCなどのオープンソースプロジェクトでは、公式サイトから直接ソースコードをダウンロードすることも可能です。この場合、TAR.GZなどの圧縮ファイル形式で配布されていることが多く、ターミナルからtarコマンドを使って展開します。例えば、source.tar.gzというファイルを展開するには、以下のコマンドを実行します。

tar -xzvf source.tar.gz

ソースコードをダウンロードして展開できたら、いよいよコンパイル前の準備段階に進みます。

build-essentialのインストール

Linuxでソフトウェアをコンパイルするには、build-essentialパッケージに含まれるツール群が必要です。これはソースコードのプログラミング言語に関わらず、ほぼすべてのビルド作業に欠かせない必須パッケージです。

build-essentialは主要なディストリビューションのソフトウェアリポジトリに登録されているため、パッケージマネージャーから簡単にインストールできます。なお、Arch Linux系ディストリビューションでは、同等の役割を持つパッケージはbase-develという名称で提供されており、同様のツールが多数含まれています。

インストール方法はディストリビューションによって異なります。UbuntuやDebian系のOSでは、ターミナルを開いて以下のコマンドを実行しましょう。

sudo apt install build-essential

build-essentialをインストールすると、g++などの依存パッケージも同時に導入されます。インストールが完了したら、次はソースコードの設定(コンフィギュア)作業に移ります。

configureコマンドの実行

主要なパッケージのソースコードには、通常configureスクリプトが含まれています。このスクリプトを実行すると、システムに必要なパッケージやライブラリが揃っているかどうかが自動的にチェックされ、正しくコンパイルできる環境かどうかを確認できます。

configureスクリプトを実行するには、まずcdコマンドで展開したソースコードのフォルダに移動します。その後、ターミナルで以下のコマンドを入力してEnterキーを押してください。

./configure

スクリプトの実行中に不足しているパッケージが検出されると、出力の最後にその内容が表示されます。例えば、VLCメディアプレーヤーをコンパイルする際には、Luaプログラミング言語がインストールされていないことが検出されるケースがあります。

場合によっては、不足パッケージがあっても代替手段でコンパイルを続行できることがあります。VLCのconfigureスクリプトでは、Lua関連パッケージが見つからない場合に--disable-luaフラグを付けて再実行すれば、Lua機能を無効化してビルドを進められる旨が案内されます。

ただし、基本的にはconfigureスクリプトが検出した不足パッケージをインストールするか、提案された無効化フラグを使ってエラーを回避する必要があります。

configureスクリプトが重大なエラーなく完了すると、パッケージ用のMakefileが生成されます。このファイルにはコンパイルに必要な具体的な指示が記録されており、最終的なビルド段階への準備が整ったことになります。

不足している依存パッケージのインストール

configureスクリプトは、新しいソフトウェアを正しくコンパイル・インストールするためにシステムに必要なパッケージを教えてくれる便利な存在です。

不足パッケージは、エラーメッセージの中に明示されていることもあれば、スクリプトの出力ログのさらに奥に埋もれていることもあります。エラーメッセージだけでは判断できない場合は、ターミナルの履歴を遡って確認してみてください。

不足しているパッケージが特定できたら、使用しているディストリビューションのパッケージマネージャーでインストールします。UbuntuやDebian系OSであれば、以下のように実行します。

sudo apt install パッケージ名

依存パッケージのインストールは、コンパイル開始前に完了しておくべき最後の準備作業です。ここまで終えれば、いよいよビルドの段階に入れます。

Linuxでのコンパイル方法

build-essentialパッケージにはmakeという自動ビルドツールが含まれています。makeは、先ほどconfigureコマンドによって生成されたMakefileを読み込み、そこに記述された指示に従ってソースコードを実際に実行可能なソフトウェアへと変換します。

コンパイルを始めるには、ターミナルを開いてcdコマンドでソースコードのあるフォルダに移動し、以下のコマンドを入力します。

make

コンパイルにかかる時間は、パッケージの規模やPCのスペック(CPU性能やメモリ容量など)によって大きく異なります。数分で終わるものもあれば、大規模なソフトウェアでは1時間以上かかる場合もあります。

コンパイルが完了し、エラーが一切表示されなければ、パッケージをシステムにインストールできます。インストールするには、ターミナルで以下のコマンドを実行してください。

sudo make install

これでパッケージがLinux PCにインストールされ、他のアプリケーションと同じように起動して使えるようになります。

Linuxへの新規ソフトウェアのインストール

Linuxでのソフトウェアのコンパイル方法を覚えておくと、あまり有名ではないマイナーなソフトウェアでも自由にインストールできるようになり、選択肢が大きく広がります。

とはいえ、UbuntuやDebianといった主要ディストリビューションには膨大なソフトウェアリポジトリが用意されているため、わざわざコンパイルしなくても、パッケージマネージャー経由で目的のソフトウェアを見つけてインストールできることがほとんどです。まずは標準のパッケージ管理システムを活用するのがおすすめです。

また、Windowsから移行したばかりの方は、Wineなどを利用してWindows用ソフトウェアをLinux上で動作させる方法もあります。お気に入りのWindows専用アプリを諦める必要はないので、ぜひ試してみてください。

  1. [初心者向け] Mac で Linux を使用するには?

    目次: 1. Linux の簡単な紹介 2.知っておくべき一般的な Linux ディストリビューション 3.起動可能な USB ドライブを搭載した Mac で Linux を使用する方法 4.起動可能な USB ドライブなしで Mac で Linux を使用する方法 5. Mac で Linux を使用する方法に関するよくある質問 3 番目に広く使用されているオペレーティング システムである Linux は、すべてのユーザーとデバイスが利用できるすべてのソースです。その柔軟性、優れたセキュリティ、および高性能は、非常に多くの専門家やオタクを魅了しています。さまざまなデバイスからの切り替

  2. LinuxにMicrosoft Edge Devをインストールする方法【deb/rm対応】

    Chromiumエンジンを採用したMicrosoft製ブラウザ「Microsoft Edge」が、ついにLinuxでも利用可能になりました。正式な一般提供には至っていないものの、現在は「Devチャネル」からインストールでき、Linuxデスクトップユーザーに新たなブラウザ選択肢をもたらしています。 現在、MicrosoftはEdgeをUbuntu、Debian、Fedora、OpenSUSE向けにパッケージングしており、Microsoft Edge Insiderサイトでビルド済みの.debおよび.rpmパッケージの最新ダウンロードリンクが公開されています。また、MicrosoftのLinuxソ