![RPM의 디렉토리를 다양한 도구의 매개변수로 사용](https://linux55.com/image/119409/RPM%EC%9D%98%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A5%BC%20%EB%8B%A4%EC%96%91%ED%95%9C%20%EB%8F%84%EA%B5%AC%EC%9D%98%20%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EB%A1%9C%20%EC%82%AC%EC%9A%A9.png)
특정 폴더에서 폴더를 가져와야 합니다.회전 속도패키지에 포함된 수량. 할 수 있다문서. 내 생각에는 그것을 스트림으로 전달할 수 있을 것 같았습니다.자바-cp명령을 클래스 경로로 사용합니까?
제가 작업 중인 프로젝트는 10개 이상의 대형 RPM을 구축하며, 각 RPM에 대해 RPM에 상주하는 애플리케이션의 클래스 경로가 필요한 프로그램을 실행해야 합니다.
우연히 이라는 프로그램을 발견했습니다.rpm2cpio파이프로 연결할 수 있음CPIO주문하다. 하지만 이제 내 지식은 점점 부족해지고 있습니다. cpio 패키지의 내용을 디스크에 추출하지 않고 파일 스트림을 사용하고 특정 폴더를 필터링하여 다른 명령에 대한 인수로 사용하는 것이 가능한지 잘 모르겠습니다.
왜 추출 때문에 이것을 시도해야합니까?모두디스크에 있는 작업은 IO 집약적인 작업이므로 가능하면 피하고 싶습니다.
답변1
rpm -qlp package.rpm
포함된 파일은 완전히 추출되지 않은 상태로 나열되며 package.rpm
큰 RPM에서도 충분히 빨라야 합니다. 이 파일 목록을 사용하면 원하는 클래스 경로를 구축할 수 있습니다.
RPM에서 특정 디렉토리와 모든 내용을 추출하려면 디렉토리를 생성한 후 다음을 cpio
사용하여 RPM에서 관련 파일을 추출해야 합니다.
cd /tmp
mkdir ./the/requested/directory
rpm2cpio /path/to/the/package.rpm | cpio -i ./the/requested/directory/\*