그래서 저는 rpmbuild 프로세스에 대해 약간 혼란스러워합니다. 지금은 이전에 만든 여러 스크립트를 유지 관리하고 있는데, 대부분은 작동하지만 일관성 있는 접근 방식을 찾을 수 없을 정도로 서로 다릅니다.
일부는 패키징하기 전에 파일을 개별적으로(매우 지루하게) 임시 위치에 복사합니다.
일부는 원저작자의 사양 파일을 사용하며 우리는 구성이나 코드만 수정합니다.
일부는 집에서 만든 것이지만 확실히 나와 같은 수준의 이해로 만들어졌습니다!
특히 저는 이 방법을 사용하고 싶지만 구축된 소프트웨어는 괜찮지 make; make install
만 실제로 시스템에 설치하기는 어렵습니다. make
make install
내가 하고 싶은 것은 make install을 사용하고 프로그램을 패키징할 목적으로 작업 디렉토리에 배치하는 것입니다. 소프트웨어를 대상 컴퓨터의 등에 설치하고 싶지만 /usr/bin
make install을 실행할 때 소프트웨어를 설치하고 싶습니다 /tempDir/usr/bin
. 그게 말이 됩니까? 기본적으로 저는 제가 패키징하는 소프트웨어로 시스템을 오염시키는 것을 피하고 싶습니다. 모든 것을 연결하는 것은 옳지 않은 것 같습니다. 구성 오류여야 하나요, 아니면 정상인가요?
내가 사용하고 있는 사양 파일에서 발췌했습니다. 소스 파일을 복사하여 /usr/src/redhat/SOURCES
사용하세요 rpmbuild -bb <specfilename>
.
BuildRoot: /var/tmp/%{name}-%{version}-root
Source0: %{name}-%{version}.tar.gz
%prep
%setup -q
%build
./configure <config opts>
make
%install
rm -rf $RPM_BUILD_ROOT
make install
답변1
패키징할 파일은 섀도우 트리에 마운트/격리되어야 합니다.
이는 일반적으로 ]DESTDIR을 재정의하여 수행됩니다.
make DESTDIR=%{buildroot} install
%install 섹션에 있습니다.