wget 유틸리티용 RPM 파일을 생성하려고 합니다. rpmbuild 명령(sudo 포함 및 제외)을 사용한 두 번의 시도에서 .rpm 파일을 생성하지 못했습니다.
사양 파일을 사용하기 위해 "sudo rpmbuild" 명령을 실행합니다. 하지만 다음과 같은 오류가 발생합니다.
오류: 파일을 찾을 수 없음: /root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/usr/local/bin/wget 오류: 파일을 찾을 수 없음: /root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64 /usr /local/share/man/man1/wget.1
디렉토리 경로를 수동으로 생성하고 파일을 수동으로 복사하면 다른 문제가 발생합니다. rpmbuild 명령이 중요한 파일이 위 위치에 있을 것으로 예상한다면 뭔가 잘못된 것 같습니다.
sudo를 사용하지 않는 것이 좋습니다. sudo를 사용하지 않을 때 rpmbuild 명령( rpmbuild -v -bb --clean SPECS/wget.spec
)은 다음을 표시합니다.
실행(%prep): /bin/sh -e /var/tmp/rpm-tmp.NiuIFV + umask 022 + cd /home/ec2-user/mywget/BUILD + cd /home/ec2-user/mywget/BUILD + rm -rf wget-1.19 rm: 'wget-1.19/po/를 삭제할 수 없습니다.[이메일 보호됨]': 권한이 거부됨 rm: 'wget-1.19/po/zh_CN.po'를 삭제할 수 없음: 권한이 거부됨 rm: 'wget-1.19/po/id.gmo'를 삭제할 수 없음: 권한이 거부됨 rm: 'wget-1.19/po를 삭제할 수 없음 '/gl.gmo': 권한이 거부되었습니다...
다른 "rm은 삭제할 수 없습니다...권한이 거부되었습니다"라는 줄이 표시됩니다. rpmbuild 명령이 작동하기를 원합니다. wget-1.19 폴더의 권한을 777(sudo chmod를 통해)로 변경했으며 해당 소유자와 그룹은 rpmbuild 명령을 실행하는 사용자와 동일합니다. 여전히 문제가 있습니다.
wget 유틸리티의 RPM 패키지를 만드는 방법은 무엇입니까?
# This is a sample spec file for wget
%define _topdir /home/ec2-user/mywget
%define name wget
%define release 1
%define version 1.19
%define buildroot %{_topdir}/%{name}-%{version}-root
BuildRoot: %{buildroot}
Summary: GNU wget
License: GPL
Name: %{name}
Version: %{version}
Release: %{release}
Source: %{name}-%{version}.tar.gz
Prefix: /usr
Group: Development/Tools
%description
The GNU wget program downloads files from the Internet using the command-line.
%prep
%setup -q
%build
./configure
make
%install
make install prefix=$RPM_BUILD_ROOT/usr
%files
%defattr(-,root,root)
/usr/local/bin/wget
%doc %attr(0444,root,root) /usr/local/share/man/man1/wget.1
위 내용은 수정되었지만 여기에 있는 사양 파일 예를 크게 기반으로 합니다.https://www.ibm.com/developerworks/library/l-rpm1/index.html
답변1
이 오류:
오류: 파일을 찾을 수 없습니다: /root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/usr/local/bin/wget
%files 섹션에 이 파일을 지정했다는 의미입니다.
%files
/usr/local/bin/wget
따라서 rpmbuild는 이 파일이 $RPM_BUILD_ROOT/usr/local/bin/wget 경로에 있을 것으로 예상하지만 거기에는 없습니다. 따라서 이 오류가 발생합니다. 맨페이지와 그 반대.
실행하면 rpmbuild -bi
스테이지가 끝난 후 중지되며, %install
파일이 실제로 배치된 /root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/의 내용을 확인할 수 있습니다.make install
나추측하다어느 하나
%install
make install prefix=$RPM_BUILD_ROOT/usr/local
또는
%files
%defattr(-,root,root)
/usr/bin/wget
%doc %attr(0444,root,root) /usr/share/man/man1/wget.1
오류를 수정해 드리겠습니다. (그 중 하나만!)