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

Linuxでパッケージをソースから再ビルドする方法

Linuxでパッケージをソースから再ビルドする方法

Linuxが多くのユーザーに愛されている理由は、オープンソースであることだけではありません。ほぼすべてのファイルを自分のニーズや好みに合わせて変更・設定できる高いカスタマイズ性も大きな魅力です。その中でも、パッケージをソースから再ビルドできることは、Linux上級者にとって非常に有用な機能の一つです。

パッケージをソースから再ビルドできれば、機能の有効化・無効化や独自のカスタム修正を加えるなど、パッケージを自由に変更できます。

この記事では、ソースからパッケージを再ビルドするための基本的な手順を解説します。

1. ソースリポジトリを有効にする

まず最初に行うのは、お使いのディストリビューションでソースリポジトリを有効にすることです。これにより、標準のaptパッケージマネージャーを使ってソースパッケージを検索・ダウンロードできるようになります。

Debian系のシステムでは、「/etc/apt/sources.list」ファイルを編集してソースパッケージを追加します。

例として、ソースパッケージを有効にしたDebian busterの「sources.list」の内容は以下のようになります。

deb https://deb.debian.org/debian buster main
deb-src https://deb.debian.org/debian buster main
deb https://deb.debian.org/debian-security/ buster/updates main
deb-src https://deb.debian.org/debian-security/ buster/updates main
deb https://deb.debian.org/debian buster-updates main
deb-src https://deb.debian.org/debian buster-updates main

deb-srcの行がソースパッケージを有効にする設定で、パッケージマネージャーに対して通常のバイナリファイルではなくソースパッケージを取得するよう指示します。

編集が完了したらファイルを保存し、以下のコマンドでシステムを更新します。

sudo apt-get update

2. ソースパッケージを取得する

更新処理が完了したら、次はソースパッケージを取得します。

ここでは例として「tar」パッケージを使用します。まず、ソースパッケージを保存するためのディレクトリを作成しましょう。

mkdir apt-rebuilds
cd apt-rebuilds

続いて、以下のコマンドでソースパッケージをダウンロードします。

apt-get source tar
Linuxでパッケージをソースから再ビルドする方法

ディレクトリ内のファイルを確認するには、次のコマンドを実行します。

ls -la
Linuxでパッケージをソースから再ビルドする方法

3. ビルド依存関係の確認とインストール

次のステップは、再ビルドしたいパッケージに必要なビルド依存関係を確認し、インストールすることです。

ソースパッケージのディレクトリ内で、以下のコマンドを実行すると、未解決のビルド依存関係をチェックできます。

sudo dpkg-checkbuilddeps

このコマンドは、不足している依存関係をすべて表示します。手動でインストールすることもできますが、より簡単な方法はaptを使って依存関係を一括インストールすることです。

その場合は、以下のコマンドを使用します。

sudo apt-get build-dep tar

このコマンドにより、必要な依存関係が自動的に取得・インストールされます。

Linuxでパッケージをソースから再ビルドする方法

4. パッケージを修正する

この段階で、パッケージに必要な変更を加え、機能の有効化や無効化を行います。(この作業は内容が広範なため、パッケージごとのすべての変更点を網羅することはできません。)

すべての変更とカスタマイズが完了したら、ソースを再コンパイルし、別のバージョン番号で保存します。これは以下のコマンドで実行できます。

dch --local tar

このコマンドを実行すると、使用するエディタの選択を求められ、チェンジログが開かれるので編集を行います。

Linuxでパッケージをソースから再ビルドする方法

ここで、加えた変更内容を説明する数行を追加したり、バージョン番号を変更したりすることができます。

5. パッケージをビルドする

最後のステップはソースパッケージのビルドです。ソースパッケージのディレクトリにいることを確認し、以下のコマンドを実行します。

dpkg-buildpackage --force-sign

このコマンドにより、前のステップで加えたすべての変更を反映したビルドプロセスが開始されます。

Linuxでパッケージをソースから再ビルドする方法

変更内容や再ビルドするパッケージの規模によっては、ビルドには数分以上かかる場合があります。

6. パッケージをインストールする

ビルドプロセスが完了すると、親ディレクトリにバイナリパッケージ(.debファイル)が生成されます。インストールするには、dpkgコマンドを使うだけです。

sudo dpkg -i *.deb

まとめ

パッケージをソースからビルドするスキルは、Linux管理者にとって必須であり、一般のLinuxユーザーにとっても身につけておくと便利な能力です。ソースからパッケージをビルドする方法を習得したら、ぜひLinuxでのファイル名の一括変更やHostsファイルの編集・活用方法についても学んでみてください。


  1. Linuxでパッケージがインストールされているか確認する方法|コマンドとGUIの使い分け

    Linuxにおける「パッケージ」とは、ソフトウェアの集合体のことです。そのインストール方法はディストリビューションごとに異なりますが、「特定のパッケージが現在インストールされているかどうか」を素早く確認する方法はいくつか存在します。ターミナル操作に慣れている方でも、視覚的なGUI操作を好む方でも、自分に合った方法で簡単にチェックできます。この記事では、Linuxでパッケージのインストール状況を確認するさまざまな手法を紹介します。 パッケージマネージャーを使って確認する どのLinuxディストリビューションにも、必ずパッケージマネージャーが搭載されています。名前の通り、ソフトウェアパッケージの

  2. モバイルLinuxとデスクトップLinuxの違いとは?知っておきたい基盤の違いを解説

    「来年こそはデスクトップLinuxの年になる」と永遠に言われ続けていますが、モバイルOSはそんな言葉を待ってはいません。モバイルOSはLinuxカーネル分野の中で最も急成長しており、世界中の圧倒的大多数のモバイル端末を支えています。 では、同じLinuxカーネルがどうやってデスクトップとモバイルという異なる環境で動作しているのでしょうか?実際のところ、AndroidはデスクトップOSとしてはあまり優秀ではありません。基本となるルールは共通していても、モバイルOSとデスクトップOSの間には数多くの重要な違いが存在するのです。 モバイルLinuxとは何か? モバイルLinuxとは、1990年