Makefile에서 다음과 같은 작업을 수행하고 있습니다.
타르볼 : mkdir -p tmp / tarball / etc / service mkdir -p tmp / tarball / usr / local mkdir -p tmp / tarball / opt / myproject cd 센서 데이터; 하다 cd 센서 터널링; device_name을 만드십시오 cp -r 센서 서비스 tmp / tarball / etc / service # 다음과 같이 타르볼을 만드십시오 : # chroot tmp / tarball; tar -czvf myproject.tar.gz.
아이디어는 ./tmp/tarball
디렉토리 로 이동 하여 시스템에서 압축을 풀 때 /etc/service
, /usr/local
및로 압축을 풀 때 tarball을 만들 수 있다는 것 /opt/myproject
입니다.
고전적인 접근 방식은 사용하는 것처럼 보이지만으로 tar -czvf -C tmp/tarball .
시작하는 타르 항목의 목록이 생성됩니다 ./
.
Go 언어의 패키지에서 영감을 얻었으며 다음과 같이 설치해야 함을 나타냅니다.
tar -C /usr/local -xzf go1.0.3.linux-amd64.tar.gz
내 유스 케이스에 이상적인 것은 다음과 같습니다.
tar -C / -xzf myproject.tar.gx
어느 다시 원래의 파일을 추출 할 ~/some-working-directory/tmp/tarball/_____
에 /_____
그 내가 할 수 단순히 가짜 설치 구조를 의미한다.
물론 이것은 fpm
배제하지 않은 것과 같은 것으로 더 잘 달성 될 수 있지만 무거운 솔루션에 관심이 없으며 Ruby에 의지하지 않고이 작업을 수행 할 수 있다고 가정했습니다.
나는 fakechroot
유망한 것처럼 보이지만 놀랍게도 타르가 chroot에 존재하지 않으며 토끼 구멍을 따라 내려 가기 시작했을 때 나는 뭔가 잘못하고 있다고 가정하고 도움을 요청해야합니다.
.deb
및로 올바르게 패키징하십시오.rpm
./opt
내 시스템에 존재하지 않습니다! 타르볼은 소스 배포 또는 전체 응용 프로그램을 시스템의 어느 위치 에나 단일 폴더로 압축 해제하여 실행할 수있는 경우에 유용합니다.