2017-01-27 78 views
0

我必須在運行Windriver Linux的x86_64硬件的目標體系結構上部署RPM軟件包。我在我的主機系統上使用rpmbuild實用程序,該系統是x86 32位12.04 Ubuntu PC。但是,我的主機上沒有安裝交叉編譯器。我必須以這種方式在我的主機上生成RPM,以便在部署到目標上時生成二進制文件。截至目前,我卡住了,因爲我發現直接運行目標上的rpm -ivh <source-rpm>不會創建二進制文件。在這種情況下還有什麼其他選擇。如何在我的主機上沒有交叉編譯器的情況下爲某些目標架構製作RPM軟件包。所有我在主機上都有源文件和一個Makefile加上rpmbuild實用程序。我的目標硬件有必要的gcc使工具進行編譯。如何使用rpmbuild爲主機上的源RPM構建目標二進制RPM

回答

0

對於那些誰可能會卡在類似的情況,我能解決使用FPM包管理實用程序這個問題,可以從以下GitHub庫下載 -

https://github.com/jordansissel/fpm

成功安裝後FPM,人們可以看到這裏有用的各種參數列表。其中一個參數是--after-install。通過使用腳本傳遞此參數可以讓我們在安裝RPM軟件包之後執行一些操作。這些操作在腳本中定義。所以,基本上我在這個腳本中定義了我的構建語句。因此,一旦使用目標上的rpm -ivh <package-name>安裝軟件包,此腳本就會在目標上執行必要的makemake install

,我用我的主機上創建RPM包的FPM命令如下 -

fpm -s dir -t rpm -n <package-name> -a all -v 1.0.0 -C <path-of-Source-file-directory> --post-install <path-to-the-script-for-make> --before-remove <path-to-another-script-for-make clean> --prefix <path-for-downloading-package>

我知道這只是一種解決方法。但如果有其他人有更好的方式做,那麼請讓我知道。