2009-01-16 51 views
13

我需要從運行在Windows計算機上的ANT腳本創建RPM包。該包必須包含構建的結果類以及一些其他附加資源。在Windows下從ANT腳本創建RPM包

我想應該有一些程序的地方,可以通過命令行來調用創建此包。

我想在windows下這樣做的原因是我們有一個腳本可以爲幾個不同的平臺構建安裝程序,並且所有的東西都已經配置好了,所以我想避免把所有東西都移植到linux上的痛苦。

你知道這怎麼可能實現?

編輯: 我用一個單獨的Linux機器做到這一點。我使用scp任務複製所有文件,然後使用ssh任務遠程執行rpm命令。如果這個任務返回一個成功的代碼,我將生成的rpm複製回scp。

回答

2

我不知道任何軟件包要做到這一點,但是這可能只是我的無知講話。

兩個建議:

通過腳本遠程設置一個Linux機器(單獨的PC機或虛擬機)和試劑盒中的轉速(見ssh/SCP/samba)。這讓我覺得這是一種安全的方法,可以避免完整的構建環境遷移。

一個更冒險的方法是使用Java編寫自己的RPM文件。 The RPM file format似乎是一個標頭,然後是多種標準存檔格式之一。對檔案內容的一些分析是需要的,所以這種方法在短期內可能相當耗時(儘管它可能會導致更快的構建)。

+0

我想我會嘗試版本1.我雖然做了類似的事情,但我想檢查是否有更好的方法 – 2009-01-20 08:01:53

+0

我使用ant任務scp和ssh在單獨的計算機中啓動生成過程。當rpm -bb調用完成時,我使用scp將文件再次複製回來。 – 2009-01-22 13:18:02

0

我不認爲這是可能的,運行時包建爲Linux不能在Windows上工作(我們不期望Linux上的dll和exes,我們!)。 Cygwin面臨着類似的挑戰,他們清楚地表明他們通過編譯windows源文件來完成它。

+0

有可能爲Windows編譯某些linux應用程序。事實上,我已經安裝了這個軟件:http://unxutils.sourceforge.net/ – 2009-01-16 15:43:10

+0

沒有任何關於固有地阻止它在Windows中工作的RPM。這只是一種不可執行的文件格式。理解文件格式的任何東西都可以與它一起工作,而不管平臺如何。 RPM中的東西也可以獨立於平臺 - jar文件,python腳本等等。 – Darryl 2016-10-05 16:14:49

4

一種可能的解決方案是使用純Java RPM操作工具,如在所描述的:

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

+0

如果你使用的是groovy,有一個redline的封裝器(在這裏)(https://github.com/TrigonicSolutions/gradle-rpm-plugin) – 2012-03-03 01:42:35

1

Freaking Package Management可以做到這一點。您應該可以使用JRuby和MRI Ruby運行它。

fpm -s dir -t rpm mydir - 或其他咒語,你提供的rpm關鍵字。見fpm --help