이 패키지를 다운로드 util-linux-2.23.2-65.el7_9.1.src.rpm
하고 압축을 푼다.
rpm2cpio ./util-linux-2.23.2-65.el7_9.1.src.rpm | cpio -idmv
사용된 파일에는 다음과 같은 파일이 있습니다.util-linux-2.23.2.tar.xz
이 파일을 추출하고 login.c 파일 중 하나를 편집했습니다.
그런 다음 명령을 사용하여 파일을 한 번 압축했습니다.
tar -cJvf util-linux-2.23.2.tar.xz util-linux-2.23.2/
이제 파일을 rpm 파일로 압축하려고 할 때 다음 명령을 사용할 수 있습니다.
rpmbuild -ba ~/rpmbuild/SOURCES/util-linux.spec
이 오류가 있습니다.
tch
+ /usr/bin/patch -p1 -s
+ /usr/bin/cat /root/rpmbuild/SOURCES/0143-lsmem-make-split-optional-follow-output-by-default.patch
+ /usr/bin/patch -p1 -s
+ /usr/bin/cat /root/rpmbuild/SOURCES/0144-libmount-fix-access-utab-write-test.patch
+ /usr/bin/patch -p1 -s
+ /usr/bin/cat /root/rpmbuild/SOURCES/0145-login-add-LOGIN_PLAIN_PROMPT-to-login.defs.patch
+ /usr/bin/patch -p1 -s
1 out of 2 hunks FAILED -- saving rejects to file login-utils/login.c.rej
error: Bad exit status from /var/tmp/rpm-tmp.GN6oqO (%prep)
RPM build errors:
bogus date in %changelog: Thu Oct 10 2012 Karel Zak <[email protected]> 2.22.1-1
bogus date in %changelog: Thu Feb 07 2012 Karel Zak <[email protected]> 2.21-0.1
bogus date in %changelog: Fri Aug 2 2011 Karel Zak <[email protected]> 2.20-0.1
bogus date in %changelog: Thu Jan 8 2010 Karel Zak <[email protected]> 2.17-1
bogus date in %changelog: Wed Dec 14 2006 Karel Zak <[email protected]> 2.13-0.46
bogus date in %changelog: Wed Mar 9 2006 Jesse Keating <[email protected]> 2.13-0.20
bogus date in %changelog: Wed Mar 9 2006 Jesse Keating <[email protected]> 2.13-0.19
bogus date in %changelog: Sun Mar 13 2004 <[email protected]>
bogus date in %changelog: Mon Jun 14 2003 Elliot Lee <[email protected]> 2.11y-20
bogus date in %changelog: Tue Jan 28 2002 Bill Nottingham <[email protected]> 2.11n-4
Bad exit status from /var/tmp/rpm-tmp.GN6oqO (%prep)
[root@vps8865 ~]# ^C
답변1
rpmbuild
압축하지 않고 새 패키지를 컴파일하고 있습니다 .
당신의 실수는 소스 tarball의 파일을 편집한 다음 원본 파일을 변경 사항으로 바꾼 것입니다. 그러나 소스 패키지의 패치 중 하나는 수정된 소스가 아닌 원래 소스에서 생성되었기 때문에 적용할 수 없습니다.
diff
그것을 담기 위해 사용해야 합니다 ). 최종 결과는 사양 파일만 변경하고 .patch 파일을 소스 디렉터리에 추가하는 것입니다. 보다RPM 패키징 가이드패치를 올바르게 작성하십시오.
노트:다른 패치가 변경된 내용을 변경하는 것처럼 보이므로 원본 소스 타르볼을 구하고 다른 모든 패치를 먼저 적용해야 할 수도 있습니다.그 다음에소스를 수정하고 diff를 생성하세요.
가짜 날짜에 대해서는 RPM이 날짜가 정확한 요일인지 확인하기 시작했는데 모두 틀렸습니다. 이 패키지를 만들고 싶다면 수정해야 할 것 같아요. RHEL에서 수정되었을 수 있습니다.