간략한 개요로서, 제가 하고 있는 일은 다음을 사용하여 Nodejs 애플리케이션을 번들링하는 것입니다.Attached.js단일 바이너리로 변환한 다음 rpmbuild
구성 파일이 포함된 전체 프로젝트를 단일 패키지로 변환하는 데 사용합니다. 패키징하기 전에는 모든 것이 괜찮았지만 결과 rpm을 설치한 후 바이너리 중 하나가 손상되었습니다. 파일은 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}