Termuxのビルド環境を利用する

Githubで公開されている公式のビルド環境(https://github.com/termux/termux-packages)を使ってビルドすることをお勧めします。使い方のコツは Termux Developer's Wiki を参照してください。

https://github.com/termux/termux-packages/wiki/Build-environment - ビルド環境を構築する。
https://github.com/termux/termux-packages/wiki/Building-packages - パッケージをビルドする方法。
https://github.com/termux/termux-packages/wiki/Creating-new-package - パッケージスクリプト(build.sh)の書き方についての情報です。

デバイス上での使用

DockerイメージやVMのセットアップをせずに、デバイス上で直接ビルド環境を使用することができます。必要な作業は以下の通りです。

git リポジトリをクローンする。

git clone https://github.com/termux/termux-packages

セットアップスクリプトを実行する。

cd termux-packages
./scripts/setup-termux.sh

を実行します。
パッケージのビルドは、./build-package.sh -I package_name を実行します。I" オプションは build-package.sh が依存パッケージを自動的にダウンロードし、インストールすることを意味し、ビルドを高速化します。

Termuxのビルド環境では、デフォルトで既存のパッケージのみをビルドすることができます。もしパッケージが ./packages ディレクトリに存在しない場合は、手動で build.sh を作成する必要があります。

もし、新しいパッケージのビルドに成功した場合は、プルリクエストを作成することを検討してください。

デバイス上でのビルドに関するいくつかの注意点。

  • パッケージの中には、$PREFIX にあるものを削除してしまうものがあり、デバイス上でビルドするには安全でないと考えられています。
  • ビルド中に、コンパイルされたものが $PREFIX に直接インストールされ、dpkg によって追跡されることはありません。これは予想された動作です。このようなものが不要な場合は、生成された deb ファイルをインストールしてからアンインストールしてください。
  • パッケージによっては、デバイス上でビルドする際にエラーが発生することがあります。これは既知の問題であり、https://github.com/termux/termux-packages/issues/4157 で追跡されています。
  • android-5 ブランチのデバイス上でのパッケージのビルドはうまくテストされていません。

手動でパッケージをビルドする

Termuxは標準的なプラットフォームではないため、パッケージのビルドやポーティングに関する普遍的なガイドはありません。

しかし、ここに書かれているいくつかの推奨事項に従うことができます。

  1. 最小限のビルドツールがインストールされていることを確認してください。
pkg install build-essential
  1. パッケージのソースコードを展開したら、"README" や "INSTALL" といった名前のファイルがあるかどうか確認してください。これらは通常、パッケージのビルド方法に関する情報を含んでいます。
  2. Autotoolsベースのプロジェクト(プロジェクトのルートに./configureスクリプトがある)は、ほとんどの場合、次のコマンドでビルドすることができます。
./configure --prefix=$PREFIX
make && make install

./configure --helpを実行して、受け入れられる設定オプションを確認することを強くお勧めします。

設定に失敗した場合は、画面に表示される出力を読み、config.log ファイルを確認します (多くのテキストが含まれていますが、エラーの原因に関するすべての情報が含まれています)。

  1. CMakeベースのプロジェクト(プロジェクトのルートにCMakeListsがある)では、ビルドが可能なはずです。
1
2
3
4
5
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" ....
make
make install

make installを実行すると、無条件で$PREFIX にファイルを書き込んでしまうので、注意してください。また、ビルドコマンドは絶対にroot権限で実行しないでください。

バグレポートに関する注意: カスタムパッケージをビルドしようとして失敗した場合、それに関するバグレポートを提出しないでください。

パッケージ要求に関する注意: もし、あなたがビルドできないパッケージのパッケージ要求を提出することに決めたなら、そのパッケージが他の人にとって有用であることを確認してください。そうでなければ、そのような要求は単に拒否されるだけでしょう。

Edit
Pub: 31 May 2022 07:46 UTC
Edit: 31 May 2022 07:52 UTC
Views: 155