CentOS 4.1 시스템에서 작업 중이며 필요한 위치의 일부 바이너리를 붙여 넣는 rpm을 만들기 위해 rpm-build를 사용하고 있습니다. 내을 .spec은 예상대로내 src.rpm에 소스 파일이 포함되어 있지 않습니다.
Summary: FOO1 Data
Name: foo
Version: 1.0
Release: 1
License: GNU
Group: FOO1
URL: www.foo1data.com
Source0: foo.src
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
%description
%define installdir $RPM_BUILD_ROOT/foo1/foo1-dummy
%prep
cd /usr/src/redhat/BUILD
rm -rf foo.src
cp -rp /usr/src/redhat/SOURCES/foo.src /usr/src/redhat/BUILD
if [ $? -ne 0 ]; then
exit $?
fi
cd foo.src
cd /usr/src/redhat/BUILD/foo.src
chown -R root.root .
chmod -R a+rX,g-w,o-w .
%build
cd foo.src/main/
./build_all
cd -
%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
mkdir -p %{installdir}/agg
install foo.src/main/agg/server/aggd %{installdir}/agg/aggd
install foo.src/main/tools/conmsgtest %{installdir}/agg/conmsgtest
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
ln -f -s /foo1/foo1-dummy/agg/conmsgtest $RPM_BUILD_ROOT/usr/local/bin/conmsgtest
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/foo1/foo1-dummy/agg/aggd
/foo1/foo1-dummy/agg/conmsgtest
/usr/local/bin/conmsgtest
내 foo는-1.0-1.x86_64.rpm 파일을 수행한다. 하지만, 내 foo는-1.0-1.src.rpm 파일, 내가 명령을 실행
RPM -ivh foo는-1.0-1.src.rpm
foo.src 디렉토리 가져가/usr/src/redhat/SOURCES 디렉토리에 추가 된 파일은 비어 있습니다. 그럼에도 불구하고 올바른 스펙 파일이 SPECS 디렉토리에 추가됩니다.
저는 rpmbuild라는 멍청한 사람입니다. 아무도 내 src rpm에 소스가 포함되도록하기 위해 필요한 것을 말해 줄 수 있습니까? 또한
명령
rpm으로 --rebuild foo는-1.0-1.src.rpm
반환 "--rebuild : 알 수없는 옵션"는 해당 옵션이 나는 할 수있다 CentOS에서 사용 하시겠습니까? 편집
: 사티에 덕분에, 내가 명령rpmbuild --rebuild foo는-1.0-1.src.rpm 내가 오류를 얻을
을 시도
/var/tmp/rpm-tmp.19105: line 27: cd: foo.src/main/: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.19105 (%build)
http://www.centos.org/docs/5/html/Deployment_Guide-en에서보세요. -US/s1-rpm-using.html – Satya
@Satya 링크를 제공해 주셔서 감사합니다. 그러나 제공된 링크에서 사양 파일에 이상이있는 것을 찾을 수 없습니다. 또한 --rebuild 옵션은 http://wiki.centos.org/HowTos/RebuildSRPM에 따라 유효하다고 생각되지만 설명서에는 표시되지 않습니다. – SidR
는 rpmbuild 대신 rpmbuild --rebuild 명령이 아닙니다. --rebuild? – Satya