`/etc/apt/sources.list.d/` 저장소 파일의 패키지 및 디렉토리 구조를 URL로 디코딩

`/etc/apt/sources.list.d/` 저장소 파일의 패키지 및 디렉토리 구조를 URL로 디코딩

저는 사용자는 아니지만 저장소에서 패키지를 가져와야 apt하는 상황에 처해 있습니다 ..deb

저는 deb 기반 배포판 사용자가 아니기 때문에 deb필요한 저장소를 쉽게 설치할 수 없습니다. 이는 다른 이유로도 비실용적입니다.

대신, 단순히 패키지를 잡고 압축을 푸는 것이 더 간단한 해결책이 될 수 있다고 생각했지만 디렉토리의 저장소 항목을 "해독"하는 데 상당한 어려움을 겪고 있습니다 sources.list.d.

deb [arch=amd64] http://apt.domain.de/ stable ubuntu

사용 가능한 패키지 목록과 같은 것을 조사할 수 있도록 또는 패키지 이름을 알고 있는 경우 해당 패키지의 URL만 알 수 있도록 이를 일종의 URL로 변환하려면 어떻게 해야 합니까?

본질적으로 내 경우에는 데비안 저장소에 수동으로 액세스하여 패키지를 가져와서 압축을 풀고 검사하는 것이 설치한 apt다음 이를 통해 패키지 등을 설치하는 것보다 더 실용적이었습니다.

답변1

항목의 구조는 다음과 같습니다.

deb [arch=architecture] base-URL version repo-sections...

항목이 있는 경우 sources.list.d:

deb [arch=amd64] http://apt.domain.de/ stable ubuntu

이는 다음을 나타냅니다.

  • 기본 URL은 다음과 같습니다.http://apt.domain.de/
  • 버전코드는stable
  • 아키텍처는amd64
  • ubuntu하나의 저장소 섹션만 나열됩니다.

관련 바이너리 패키지 목록이 <base-URL>/dists/<version>/<repository-section>/binary-<arch>/Packages.(gz|xz)다음 위치에 있음을 나타냅니다.

http://apt.domain.de/dists/stable/ubuntu/binary-amd64/Packages.(gz|xz)

실제 패키지는 다음 위치에 있을 가능성이 높습니다 <base-URL>/pool/<repository-section>.

http://apt.domain.de/pool/ubuntu/

저장소에 많은 수의 패키지가 포함된 경우 두 번째 URL 아래의 여러 하위 디렉터리로 분할되었을 수 있습니다.

  1. 포함된 패키지 이름의 첫 번째 문자와 일치하는 단일 문자로 이름이 지정됩니다.
  2. 명명된 곳은 단일 문자이며 libX이름이 접두사 없이 동일한 문자로 시작하는 X라이브러리 패키지를 포함합니다.liblibX*

만약 있다면진짜저장소의 패키지 수가 더 많아지고 추가 분류가 있을 수 있습니다.

따라서 "foo" 패키지를 찾고 있다면 먼저 파일을 다운로드 http://apt.domain.de/dists/stable/ubuntu/binary-amd64/Packages.gz하거나 읽어 http://apt.domain.de/dists/stable/ubuntu/binary-amd64/Packages.xz해당 저장소의 버전 섹션 ubuntu에서 어떤 패키지 버전이 최신으로 간주되는지 알아보세요.stable

다음과 같은 내용을 찾을 수 있습니다.

Package: foo
Source: foo (1.2.3-4)
Version: 1.2.3-4+b1
Installed-Size: 12345
Maintainer: The Developer Guy <[email protected]>
Architecture: amd64
Depends: libfoo (>= 1.2.3-4+b1)
...
Filename: pool/ubuntu/f/foo/foo_1.2.3-4+b1_amd64.deb
...

이를 통해 다음 사항을 알 수 있습니다.

  • 관련 패키지는foo-1.2.3-4+b1.deb

  • libfoo패키지 , 버전 1.2.3-4+b1이상 에 따라 다릅니다 .

  • 패키지는 다음에서 찾을 수 있습니다.

    http://apt.domain.de/pool/ubuntu/f/foo/foo_1.2.3-4+b1_amd64.deb

그런 다음 패키지를 임시 디렉터리에 다운로드하고 압축 풀기를 시작할 수 있습니다.

mkdir workdir
cd workdir
wget http://apt.domain.de/pool/ubuntu/f/foo/foo_1.2.3-4+b1_amd64.deb
ar x foo_1.2.3-4+b1_amd64.deb

control.tar.xz그러면 , data.tar.xz및 3개의 파일이 제공됩니다 debian-binary. 마지막 파일에는 패키지 형식 버전 번호만 포함되어 있으며 일반적으로 무시할 수 있습니다.

data.tar.xz패키지가 설치할 실제 파일을 포함합니다 .

control.tar.xz사전 설치/설치 후/제거 스크립트(패키지에 필요한 경우)와 패키지 관리자에 대한 일부 메타데이터가 포함되어 있습니다 .

관련 정보