簡単な概要として、私がやっていることは、次のようにNodejsアプリケーションをバンドルすることです。Attached.js単一のバイナリに変換し、構成rpmbuild
ファイルを含むプロジェクト全体を単一のパッケージに変換するために使用します。パッケージングする前にすべてが問題ありませんでしたが、結果のrpmをインストールした後、バイナリの1つが破損していました。ファイルは40MBバイナリで、rpmは52MBですが、インストール後に抽出されたバイナリは15MBに過ぎません。
これは私の仕様ファイルです。
Name: Packager
Version: 2.0
Release: 0
License: Proprietary
Group: System/Extras
Distribution: Linux CentOS
Packager: Ammar Lakis <[email protected]>
Requires: mongodb-server
Summary: A quick packager
%description
Package made for packaging
%build
cd %{my_source}
npm run build
%install
cp -r %{my_source}/pkg/ $RPM_BUILD_ROOT
%post
systemctl enable packager
%files
/usr/bin/packager
/usr/bin/packager-tools
/etc/packager
ビルドプロセスはこのコマンドで実行されます。
rpmbuild -bb --define 'my_source /root/Packager/' packager.spec
バンドルファイルが切り捨てられる理由はありますか?
答え1
デフォルトでは、rpmbuildはバイナリとライブラリをrpmファイルに入れて/usr/lib/rpm/brp-compress
削除(使用)します。仕様ファイルの先頭に加えて、この機能を無効にできる必要があります。
%global __os_install_post %{nil}