13

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

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

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

どうすればこれを達成できるか知っていますか?

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

4

6 に答える 6

8

redline-rpm Java ライブラリと ant タスクも検討してください。https://github.com/craigwblake/redline

于 2009-11-26T11:19:05.083 に答える
4

考えられる解決策は、以下で説明されているような純粋な Java RPM 操作ツールを使用することです。

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

于 2009-01-16T15:47:13.957 に答える
2

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

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

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

于 2009-01-16T10:16:06.313 に答える
2

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

2 つの提案:

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

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

于 2009-01-16T11:33:30.607 に答える
1

おかしなパッケージ管理はこれを行うことができます。JRuby と MRI Ruby の両方で実行できるはずです。

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

于 2013-01-19T22:56:44.670 に答える
0

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

于 2009-01-16T11:06:26.277 に答える