これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドperl-cross-debianです。
プログラム:
NAME
perl-cross-debian-Debianのクロスビルドサポートの長期メンテナンス
Perlの構成
SYNOPSIS
perl クロス debian [--rootdir = DIRECTORY] --variant =STRING
perl クロス debian - 掃除
perl クロス debian [{-h | - 助けて} | {{-v | - バージョン}]
DESCRIPTION
perl クロス debian Debianのクロスビルドサポートの長期メンテナンスをサポートします
perlの構成。
perl クロス debian コマンドラインで直接実行することは想定されておらず、実行されます
の制約内で、perlのDebianソースパッケージの変更されたdebian/rulesによって
クロスビルド。 perl クロス debian によって設定されたクロスビルディング環境を使用します
dpkg-アーキテクチャ -aARCH 要求されたものに不可欠な構成値を提供する
クロスビルド内でクロスビルドバイナリを実行しないようにするアーキテクチャ。 フルサポート
Debianにすでにパッケージ化されているperlの特定のバージョンに限定されており、選択されたもののみが対象です
アーキテクチャ。
perl クロス debian 事前に作成された設定ファイルを現在のperlビルドツリーにコピーします
構成段階でビルドがテストバイナリを実行する必要がないようにする
事前にテストの値を提供します。 perl クロス debian 次に、から値を抽出します
キャッシュされたファイルは、ビルド情報とパッケージMakefileを更新します。
perl クロス debian 次に、パッチを適用したMakefile.SHに依存して、ホストのperlインタープリターを呼び出します。
内部で構築されているperlインタープリターの代わりに。
見る Running: クロス ビルド perlのDebianパッケージを準備する方法の詳細については
現在サポートされているホストアーキテクチャのXNUMXつに対するクロスビルディング。 (へのパッチ
サポートされているDebianバージョンのperlに適用する
/ usr / share / perl-cross-debian / patchs)。
見る perl-クロスステージング (1) 拡張方法については perl クロス debian 他に
ホストアーキテクチャと他のバージョンのperl。
COMMAND
- 変異体 バリアント
経由で渡された現在のperlビルドバリアントの名前(静的、デバッグ、または共有)
debian / rulesは、反復ごとにXNUMX回指定する必要があります。
- 掃除
を実行します perl クロス debian ターゲットをクリーンアップし、ゼロを終了します。 - 掃除 任意をオーバーライドします
- 変異体 コマンド-クリーン操作は現在のバリアントに依存しません。
OPTIONS
--rootdir DIRECTORY
未リリースの構成ファイルを使用したテストのデバッグサポート。
を調べる代わりにrootdir
/ usr / share / perl-cross-debian / $(DEB_HOST_GNU_TYPE)/ $(PERL_VERSION)ディレクトリ。
(この場合の$(PERL_VERSION)は、 /bin/bash debian / config.debian
- 完全版.)
-?, -h, - 助けて, - バージョン
オプションの概要とバージョン情報を表示します。
制限
perl クロス debian 中に使用されるperlインタプリタのセーフガードを実装します
クロスビルドは、クロスビルドされるperlインタープリターと同じアップストリームバージョンです。
DynaLoader.pmの制限:
arm-linux-gnueabi-gcc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -D_FORTIFY_SOURCE = 2 -g -O2 -fstack-protector
--param = ssp-buffer-size = 4 -Wformat -Werror = format-security -fno-strict-aliasing -pipe -I / usr / local / include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS = 64 -O2 -g -DVERSION = \ "3.39_02 \" -DXS_VERSION = \ "3.39_02 \"
-fPIC"-I。。/ .."Cwd.c
Cwd用のMkbootstrapの実行()
DynaLoaderオブジェクトのバージョン1.13は、.. / ../ lib/DynaLoader.pmの1.14行目の$DynaLoader::VERSION86と一致しません。
../../lib/ExtUtils/Mkbootstrap.pmの27行目でrequireでコンパイルに失敗しました。
代わりに、 perl クロス debian バージョンの不一致で停止し、クロスビルドに失敗します。 確認
インストールされたperlインタプリタは、のクロスビルドをテストする前にアップグレードされます。
更新されたperlソースコード(またはchrootを使用)。 chrootと古いスタイルのdpkg-crossを使用する場合
依存関係については、少なくともzlibとbzip2の依存関係を外部に準備することを検討してください。
perlの新しいバージョンとしてのchrootは、多くのperlモジュールではインストールできないことがよくあります。
dpkg-crossで使用されるものなど。 例:zlib1g-dev-armel-crossおよびlibbz2-dev-armel-cross
libdb-dev-armel-crossとlibgdbm-dev-armel-crossも同様です。
sudo xapt -a armel -b zlib1g-dev libbz2-dev libdb-dev libgdbm-dev
-crossパッケージは/var/ lib / xapt / outputにあり、chrootにコピーする必要があります。
でインストール dpkg -i ./*
perl クロス debian また、次の場合にクロスビルドを防ぐためのセーフガードを実装します
DEB_BUILD_OPTIONS = "nocheck" ビルドを開始する前に設定されていません。 クロスビルド
Perlビルド内でのテストコードの実行による失敗は、必ずしも簡単ではありません。
識別します。 perl クロス debian このビルドオプションをチェックし、クロスビルドに失敗した場合
設定されていません。 (チェックは内部で行われます perl クロス debian したがって、クリーンなターゲットは
チェックが行われる前に実行されました。)
ランニング 、 CROSS BUILD
perl クロス debian クロスビルドする前にperlパッケージにいくつかの変更が必要なので、
Makefile.SHとdebian/rulesの両方にパッチが適用されており、相互依存関係と
クロスコンパイラがインストールされています。
パッチはで運ばれます perl クロス debian 同梱
/ usr / share / perl-cross-debian/patches。
デビルド これはビルドログを提供し、lintian(デフォルト)を実行するため、推奨されます。
ビルドされたパッケージがチェックされ、バイナリが
クロスアーキテクチャ用に正しくコンパイルされています(通常のチェックの中で)。 クロスを実行します
ビルド:
DEB_BUILD_OPTIONS = "nocheck" debuild -aarmel -us -uc -d
の使用に注意してください -d オプション dpkgはMutiArchまでクロスビルドの依存関係をチェックできないため
-devパッケージが使用されており、テストを無効にするためのDEB_BUILD_OPTIONSの要件
上。
サポートされている バージョン そして アーキテクチャ
perl クロス debian サポートにはパッチがありますが、改善することができます。 で特定のアーキテクチャのみ
特定のバージョンがサポートされています-要求されたバージョンのファイルが見つからない場合
必要なアーキテクチャのディレクトリで、詳細についてはperl-cross-staging(1)を参照してください。
この情報を追加する方法と、perlで進行中の作業の詳細について
上流の。
CLEAN TARGET サポート
perl クロス debian クロスビルドのカスタムクリーンターゲットのサポートが含まれ、
クロスビルド中に生成されたバージョン固有のコンテンツは、前にクリーンアップされます
dpkg-sourceはソースパッケージを検証しようとします。 必要な追加ファイルがある場合
クリーンアップするには、 perl クロス debian.
EXTENSION インストール
拡張機能を構築およびインストールする現在の方法では、テストと
改善。 Perlクロスビルドの主な重点は、ブートストラップをサポートすることです。
miniperlだけでなく通常のperlインタプリタを利用できるようにすることで、
通常パッケージされている拡張機能とモジュールの正しい機能にあまり重点を置いていない
ネイティブperlビルドによる。 次の場合のperl拡張機能とモジュールの使用に関連する問題
クロスビルドされたperlパッケージがインストールされている場合は、バグとして報告する必要があります
perl クロス debian.
拡張 Perl-クロス-Debian
perl クロス debian サポートを新しいものに拡張する方法のいくつかのPODドキュメントを提供します
アーキテクチャとperlの新しいバージョンの既存のサポートを更新する方法。
/usr/share/doc/perl-cross-debian/converting-native.podおよび
/usr/share/doc/perl-cross-debian/new-arch.pod
onworks.netサービスを使用してオンラインでperl-cross-debianを使用する