우분투 저장소의 구조는 무엇입니까?


29

Ubuntu 저장소의 파일은 어떻게 구성되어 있습니까? 저장소에서 중요한 파일은 무엇입니까? 리포지토리가 일치하지 않거나 손상되거나 동기화되면 어떻게됩니까?

답변:


19

apt 소스의 deb 라인에 따르면 apt는 다음을 가져옵니다.

Release.gpg가 릴리스 파일에 유효한 서명인지, 그리고 Packages.gz 내용이 릴리스 파일에있는 무결성 체크섬과 일치하는지 확인합니다. 불일치가 있으면 리포지토리 서명 무결성 오류가보고됩니다.

요청 된 패키지의 패키지 파일 이름은 이전에 검색된 Packages.gz 내용에서 결정됩니다. 컨텐츠 체크섬이 다운로드되고 해당 컨텐츠 체크섬이 Packages.gz 체크섬 컨텐츠와 일치해야합니다. 그렇지 않으면 무결성 오류가보고됩니다.

마지막 질문은 미러 구조 자체에 관한 것이 아니라 미러 프로세스에 따른 미러 동기화에 관한 것입니다. 동기화하는 동안 아카이브 무결성을 중단하지 않고 임시 위치를 사용하여 동기화 할 수 있습니다. 모든 우분투 거울이 그렇게하는지 확실하지 않습니다.


불행히도 링크가 끊어졌습니다
푸르스름한

그것들은 깨지지 않고 단지 템플릿 일 뿐이며 동적 필드 인 "릴리스" "COMPONENT", 바이너리 "등을 대체해야합니다.
João Pinto

18

Joao는 내 질문의 후반부에 대답했기 때문에 전반을 스스로 조사했습니다. 루트 레벨에는 4 개의 디렉토리와 1 개의 파일이 있습니다.

root
| -- dists
| -- pool
| -- indices
| -- project
| -- ls-lr.gz

(또한 내 대학 리포지토리에는 처음 두 항목 만있었습니다. 따라서 마지막 3 개는 리포지토리 기능에 필수적이지 않은 것으로 보입니다.)

파일 ls-lr.gz에는 ls -lr저장소 루트 디렉토리에서 실행 되는 명령 출력이 포함 됩니다.

dists디렉토리는 (패키지의 목록을 포함) 넣고 Packages.gz 파일과 패키지에 서명 Release.gpg / 릴리스 모두를 포함하는 메타 데이터의 대부분을 포함 할 것으로 보인다. (정보를 위해 Joao에게 감사합니다)

pool디렉토리는 실제 뎁 파일이 포함되어 있습니다. 조직은 /pool/[section]/[letter]/[group]/packagename.deb입니다. 따라서 subversion은 python-subversion 패키지 /pool/main/s/subversion/python-subversion_1.3.2-3ubuntu2%7edapper1_amd64.deb의 그룹이고 s는 subversion의 첫 글자이므로 python-subversion 패키지의 실제 위치는 입니다.

projects디렉토리는 미러가 원래의 repo에 동기화 된 방법을 자세히 설명하는 몇 개의 파일을 포함 할 것으로 보인다.

indices디렉토리에 많은 파일이 포함되어, 그들 대부분은 비 웁니다. 비어 있지 않은 파일은 패키지에 대한 추가 메타 데이터를 제공하는 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.