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
ディレクトリ内のファイルを確認するには、次のコマンドを実行します。
ls -la
3. ビルド依存関係の確認とインストール
次のステップは、再ビルドしたいパッケージに必要なビルド依存関係を確認し、インストールすることです。
ソースパッケージのディレクトリ内で、以下のコマンドを実行すると、未解決のビルド依存関係をチェックできます。
sudo dpkg-checkbuilddeps
このコマンドは、不足している依存関係をすべて表示します。手動でインストールすることもできますが、より簡単な方法はaptを使って依存関係を一括インストールすることです。
その場合は、以下のコマンドを使用します。
sudo apt-get build-dep tar
このコマンドにより、必要な依存関係が自動的に取得・インストールされます。
4. パッケージを修正する
この段階で、パッケージに必要な変更を加え、機能の有効化や無効化を行います。(この作業は内容が広範なため、パッケージごとのすべての変更点を網羅することはできません。)
すべての変更とカスタマイズが完了したら、ソースを再コンパイルし、別のバージョン番号で保存します。これは以下のコマンドで実行できます。
dch --local tar
このコマンドを実行すると、使用するエディタの選択を求められ、チェンジログが開かれるので編集を行います。
ここで、加えた変更内容を説明する数行を追加したり、バージョン番号を変更したりすることができます。
5. パッケージをビルドする
最後のステップはソースパッケージのビルドです。ソースパッケージのディレクトリにいることを確認し、以下のコマンドを実行します。
dpkg-buildpackage --force-sign
このコマンドにより、前のステップで加えたすべての変更を反映したビルドプロセスが開始されます。
変更内容や再ビルドするパッケージの規模によっては、ビルドには数分以上かかる場合があります。
6. パッケージをインストールする
ビルドプロセスが完了すると、親ディレクトリにバイナリパッケージ(.debファイル)が生成されます。インストールするには、dpkgコマンドを使うだけです。
sudo dpkg -i *.deb
まとめ
パッケージをソースからビルドするスキルは、Linux管理者にとって必須であり、一般のLinuxユーザーにとっても身につけておくと便利な能力です。ソースからパッケージをビルドする方法を習得したら、ぜひLinuxでのファイル名の一括変更やHostsファイルの編集・活用方法についても学んでみてください。
-
Linuxでパッケージがインストールされているか確認する方法|コマンドとGUIの使い分け
Linuxにおける「パッケージ」とは、ソフトウェアの集合体のことです。そのインストール方法はディストリビューションごとに異なりますが、「特定のパッケージが現在インストールされているかどうか」を素早く確認する方法はいくつか存在します。ターミナル操作に慣れている方でも、視覚的なGUI操作を好む方でも、自分に合った方法で簡単にチェックできます。この記事では、Linuxでパッケージのインストール状況を確認するさまざまな手法を紹介します。 パッケージマネージャーを使って確認する どのLinuxディストリビューションにも、必ずパッケージマネージャーが搭載されています。名前の通り、ソフトウェアパッケージの
-
モバイルLinuxとデスクトップLinuxの違いとは?知っておきたい基盤の違いを解説
「来年こそはデスクトップLinuxの年になる」と永遠に言われ続けていますが、モバイルOSはそんな言葉を待ってはいません。モバイルOSはLinuxカーネル分野の中で最も急成長しており、世界中の圧倒的大多数のモバイル端末を支えています。 では、同じLinuxカーネルがどうやってデスクトップとモバイルという異なる環境で動作しているのでしょうか?実際のところ、AndroidはデスクトップOSとしてはあまり優秀ではありません。基本となるルールは共通していても、モバイルOSとデスクトップOSの間には数多くの重要な違いが存在するのです。 モバイルLinuxとは何か? モバイルLinuxとは、1990年