패키지 저장소를 확인하고 연결하시겠습니까?

패키지 저장소를 확인하고 연결하시겠습니까?

우분투 이미지를 설정했고 이를 하드 드라이브를 통해 오프라인 시스템으로 전송할 준비가 되었습니다. 이미지에 필요한 모든 패키지가 있는지 확인하고 누락된 패키지를 이미지에 추가하고 싶습니다. 이미지의 /var/spool/apt-mirror크기는 120GB이며 수백 개의 .deb 파일이 포함되어 있습니다. 이 두 가지 작업을 어떻게 수행합니까?

(1) 패키지가 존재하는지 확인하려면 어떻게든 패키지를 사용하여 dpkg내 미러를 가리키고 내 패키지가 미러 어딘가에 있는지 물어봐야 한다고 가정합니다. 어떻게 해야 하나요? 내가 시도했지만 실패한 것은 다음과 같습니다.

dpkg --info /var/spool/apt-mirror/ astyle
dpkg-deb: error: error reading archive magic version number from file /var/spool/apt-mirror/: Is a directory

어쩌면 그 명령을 어떻게든 사용해야 할까요 apt-cache?

(2) 패키지가 분실되었다고 가정하면 거울에 어떻게 넣나요? deb 파일을 찾아서 이미지 "풀"의 아무 곳에나 복사하면 되나요? 예를 들어, 다음 패키지를 원한다고 가정해 보겠습니다.

apt-cache showpkg astyle
Package: astyle
Versions:
2.01-1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages)

패키지는 분명히 내 로컬 캐시에서 사용할 수 있습니다(그러나 내 준비 컴퓨터에는 설치되어 있지 않습니다). 거울로 어떻게 옮기나요?

답변1

패키지가 디렉토리 트리 어딘가에 있는지 확인하려면 를 사용할 필요가 없습니다 dpkg. find파일이 있는지 확인하는 것뿐입니다. .deb파일이라는 사실은 거의 관련이 없습니다.

예를 들어

find /var/spool/apt-mirror/ -name 'astyle*.deb'

많은 파일에 대해 이 작업을 반복적으로 수행하려는 경우 출력을 find /var/spool/apt-mirror/ -type f파일로 리디렉션한 다음 해당 파일에 대한 검색을 사용하는 것이 좋습니다. 이는 grep매번 검색을 한 번 실행하는 것보다 훨씬 빠릅니다.find

이미지에서 패키지가 누락된 경우(그리고 미러링 중인 저장소에 있는 경우) apt-mirror구성을 확인하고 다시 실행하십시오 apt-mirror.

패키지가 이미지에 있어야 하는지 확인하려면 grep관련 Packages파일을 살펴보세요. 예를 들어, jessie의 zfsonlinux 아카이브 미러가 있으므로 spl패키지가 해당 저장소에 있어야 하는지 알고 싶다면 다음을 수행합니다.

# grep 'Package: spl$' /var/spool/apt-mirror/mirror/archive.zfsonlinux.org/debian/dists/jessie/main/binary-amd64/Packages
Package: spl

또는

# find /var/spool/apt-mirror/mirror/archive.zfsonlinux.org/ -name 'Packages' -exec grep 'Package:\ spl$' {} +
/var/spool/apt-mirror/mirror/archive.zfsonlinux.org/debian/dists/jessie-daily/main/binary-amd64/Packages:Package: spl
/var/spool/apt-mirror/mirror/archive.zfsonlinux.org/debian/dists/jessie/main/binary-amd64/Packages:Package: spl

관련 정보