내가 사용할 때 rpmbuild
, 나는 얻는다.해당 파일이나 디렉터리가 없습니다..
# rpmbuild -ba ./SPECS/myFoo.spec
error: File /root/rpmbuild/SOURCES/myFoo.tar.gz: No such file or directory
rpmbuild
완전히 다른 사용자의 홈 디렉터리에서 명령을 실행했음에도 불구하고 내 홈 디렉터리에서 읽는 것처럼 보입니다. 그러나 내가 사용하면 --root
(다음과 같이 문서화됨)DIRECTORY
" 모든 작업에 루트 파일 시스템 트리를 사용하십시오 .")
# rpmbuild -ba ./SPECS/myFoo.spec --root /home/centos/myFoo/
error: File /root/rpmbuild/SOURCES/myFoo.tar.gz: No such file or directory
올바른 위치에 표시되도록 하는 솔루션이 있습니까?
답변1
이를 수행하는 한 가지 방법은 다음과 같습니다.
rpmbuild --define "_topdir `pwd`" -ba ./SPECS/myFoo.spec
이것이 올바른 접근 방식인지 모르겠습니다.
답변2
rpmbuild
인수로 제공된 파일을 찾는 것 외에는 현재 디렉토리에 대해 특별히 신경 쓰지 않습니다. 다른 모든 것은 _topdir
매크로의 값을 기반으로 합니다 . rpmbuild
또한 모든 빌드에 대해 단일 디렉터리 구조를 사용할 것으로 예상됩니다.
rpmbuild
다음 위치에 적절한 값을 저장하여 특정 사용자에 대한 디렉터리 구조의 루트를 영구적으로 정의할 수 있습니다 ~/.rpmmacros
.
%_topdir /path/to/your/data
또는 결정한 대로 옵션이 _topdir
실행될 때마다 덮어쓰여집니다 rpmbuild
.-D
답변3
나는 같은 문제가 있으며 다음 해결책을 사용했습니다.
파일을 열다~/.rpmmacros
줄을 변경하십시오.
%_topdir %(echo $HOME)/rpmbuild
을 위한:
%_topdir %(pwd)
지금:
rpmbuild -ba ./SPECS/myFoo.spec
잘 작동할 겁니다.