質問

Windowsコンピューターで実行されるANTスクリプトからRPMパッケージを作成する必要があります。このパッケージには、ビルドの結果クラスに加えて、その他の追加リソースが含まれている必要があります。

このパッケージを作成するために、コマンドラインから起動できるプログラムがどこかにあるはずです。

Windowsでこれを行う理由は、いくつかの異なるプラットフォーム用のインストーラーをビルドするスクリプトがあり、すべてが既にWindows用に構成されているため、すべてをLinuxに移行する苦痛を避けるためです。 >

これを達成する方法を知っていますか?

編集: 別のLinuxマシンを使用してこれを行いました。 scpタスクを使用してすべてのファイルをコピーし、sshタスクを使用してリモートでrpmコマンドを実行します。このタスクが成功コードを返す場合、結果のrpmをscpでコピーして戻します。

役に立ちましたか?

解決

これを行うためのパッケージを知りませんが、それは私の無知な話かもしれません。

2つの提案:

Linuxマシン(別個のPCまたは仮想マシン)をセットアップし、スクリプトを使用してリモートでrpmをキット化します( ssh / scp / samba )。これは、ビルド環境の完全な移行を回避する安全なアプローチだと思います。

より冒険的なアプローチは、Javaを使用して独自のRPMファイルを作成することです。 RPMファイル形式は、いくつかの標準アーカイブ形式のいずれかが続くヘッダーのようです。アーカイブの内容の分析が必要になるため、このアプローチは短期的にはかなり時間がかかる可能性があります(ただし、ビルドが高速になる可能性があります)。

他のヒント

また、redline-rpm Javaライブラリ<!> amp;も考慮してください。 antタスク。 https://github.com/craigwblake/redline

可能な解決策は、次のような純粋なjava RPM操作ツールを使用することです。

http://jrpm.sourceforge.net/rpmspec/index.html

Antマニュアルを確認すると、次のオプションのタスクが見つかりました。

http://ant.apache.org/manual/Tasks/rpm.html

ただし、これはLinuxコンピューターでのみ実行されます

Freaking Package Management でこれを実行できます。 JRubyとMRI Rubyの両方で実行できるはずです。

fpm -s dir -t rpm mydir-またはrpmキーワードを指定する別の呪文。 fpm --helpを参照してください。

それは可能だとは思わない、Linux用にビルドされたランタイムパッケージはWindowsでは動作しません(Linuxではdllやexeを期待していません!)。 Cygwinも同様の課題に直面しており、Windows用のソースファイルをコンパイルすることでそれを行うと明確に述べています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top