특정 폴더에서 폴더를 가져와야 합니다.회전 속도패키지에 포함된 수량. 할 수 있다문서. 내 생각에는 그것을 스트림으로 전달할 수 있을 것 같았습니다.자바-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/\*