패키징 후 바이너리 파일이 손상됨

패키징 후 바이너리 파일이 손상됨

간략한 개요로서, 제가 하고 있는 일은 다음을 사용하여 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}

관련 정보