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 リポジトリをクローンする。
セットアップスクリプトを実行する。
を実行します。
パッケージのビルドは、./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は標準的なプラットフォームではないため、パッケージのビルドやポーティングに関する普遍的なガイドはありません。
しかし、ここに書かれているいくつかの推奨事項に従うことができます。
- 最小限のビルドツールがインストールされていることを確認してください。
- パッケージのソースコードを展開したら、"README" や "INSTALL" といった名前のファイルがあるかどうか確認してください。これらは通常、パッケージのビルド方法に関する情報を含んでいます。
- Autotoolsベースのプロジェクト(プロジェクトのルートに
./configure
スクリプトがある)は、ほとんどの場合、次のコマンドでビルドすることができます。
./configure --help
を実行して、受け入れられる設定オプションを確認することを強くお勧めします。
設定に失敗した場合は、画面に表示される出力を読み、config.log ファイルを確認します (多くのテキストが含まれていますが、エラーの原因に関するすべての情報が含まれています)。
- CMakeベースのプロジェクト(プロジェクトのルートにCMakeListsがある)では、ビルドが可能なはずです。
make install
を実行すると、無条件で$PREFIX
にファイルを書き込んでしまうので、注意してください。また、ビルドコマンドは絶対にroot権限で実行しないでください。
バグレポートに関する注意: カスタムパッケージをビルドしようとして失敗した場合、それに関するバグレポートを提出しないでください。
パッケージ要求に関する注意: もし、あなたがビルドできないパッケージのパッケージ要求を提出することに決めたなら、そのパッケージが他の人にとって有用であることを確認してください。そうでなければ、そのような要求は単に拒否されるだけでしょう。