저는 사용자는 아니지만 저장소에서 패키지를 가져와야 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 아래의 여러 하위 디렉터리로 분할되었을 수 있습니다.
- 포함된 패키지 이름의 첫 번째 문자와 일치하는 단일 문자로 이름이 지정됩니다.
- 명명된 곳은 단일 문자이며
libX
이름이 접두사 없이 동일한 문자로 시작하는X
라이브러리 패키지를 포함합니다.lib
libX*
만약 있다면진짜저장소의 패키지 수가 더 많아지고 추가 분류가 있을 수 있습니다.
따라서 "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
사전 설치/설치 후/제거 스크립트(패키지에 필요한 경우)와 패키지 관리자에 대한 일부 메타데이터가 포함되어 있습니다 .