데비안 패키지 이름이 주어지면 최신 .deb URL의 URL을 얻는 방법은 무엇입니까? [복사]

데비안 패키지 이름이 주어지면 최신 .deb URL의 URL을 얻는 방법은 무엇입니까? [복사]

예를 들어, AMD64에 Jessie용 최신 Debian 패키지 "libgcc1"을 설치하고 싶습니다.

다운로드할 올바른 URL을 결정하는 방법https://packages.debian.org

예를 들어, 이 경우 수동으로https://packages.debian.org웹사이트는 결국 다음과 같은 올바른 다운로드로 이어졌습니다.

http://ftp.us.debian.org/debian/pool/main/g/gcc-4.9/libgcc1_4.9.2-10_amd64.deb

중요: 이용 가능한 아파트가 없습니다. .deb 패키지에서 종속성 이름을 수동으로 추출하기 위해 일부 코드를 작성 중이지만 이제 패키지 이름에 대한 올바른 실제 .deb 패키지를 가져오는 다음 단계를 찾으려고 노력하고 있습니다.

예를 들어 다음 정보를 얻어야 합니다.

  • 패키지 이름: libgcc1
  • 버전: 최신
  • 아키텍처: amd64
  • 데비안 배포판: Jesse

도착하다:

http://ftp.us.debian.org/debian/pool/main/g/gcc-4.9/libgcc1_4.9.2-10_amd64.deb

이 관계를 어떻게 확인할 수 있나요?

편집: "왜 apt를 사용하지 않습니까?"라고 묻는 모든 사람에게 대답은 내가 해결하려는 핵심 문제는 apt를 설치하는 것입니다. apt를 설치하려고 하니 apt를 사용할 수 없습니다.

감사해요

답변1

글쎄, 당신에게 맞는 것이 있다면 ...

apt-get -y install --print-uris $PACKAGE | cut -f 2 -d \' | grep \.deb

실제로 설치에 필요한 모든 패키지를 제공합니다.

user@darkstar:~/ $ apt-get -y install --print-uris audacity | cut -f 2 -d \' | grep \.deb
http://archive.ubuntu.com/ubuntu/pool/universe/libs/libsbsms/libsbsms10_2.0.2-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/serd/libserd-0-0_0.22.0~dfsg0-2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/sord/libsord-0-0_0.14.0~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/sratom/libsratom-0-0_0.4.6~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/suil/libsuil-0-0_0.8.2~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/a/audacity/audacity-data_2.1.2-1_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/f/flac/libflac++6v5_1.3.1-4_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/libi/libid3tag/libid3tag0_0.15.1b-11_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/l/lilv/liblilv-0-0_0.22.0~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/p/portsmf/libportsmf0v5_0.1~svn20101010-4ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/v/vamp-plugin-sdk/libvamp-hostsdk3v5_2.6~repack0-2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/a/audacity/audacity_2.1.2-1_amd64.deb

잘 모르시겠다면 한번 살펴보세요http://ftp.us.debian.org/debian/dists/stable/main/binary-amd64 거기에서 Packages.gz 파일의 복사본을 얻으세요. 그것을 보면 패키지 이름이 다음과 같이 나열되어 있는 것을 볼 수 있습니다.

Package: audacity

그 후 몇 줄을 지나면 다음과 같은 내용이 표시됩니다.

Filename: pool/main/a/audacity/audacity_2.0.6-2_amd64.deb

그러면 그렇게 해. 불행하게도 줄 번호가 일치하지 않습니다.

답변2

사용할 수 있는 것이 없으면 apt기본적으로 재구현에 갇혀 있는 것입니다 apt. 직접적으로 얻는 것이 더 합리적일 수 있습니다 apt. 하지만 꼭 해야 한다면...

다음과 같은 방식으로 실행됩니다 apt: 지정된 URL에서 /etc/apt/sources.list, http://ftp.us.debian.org/debian/예: 업데이트 목록, security.debian.org 및 가능한 백포트에서 다른 가능한 항목을 고려하는 것을 잊지 마십시오.

/etc/apt/preferences{,.d}특정 패키지가 어떤 소스에서 제공되어야 하는지 알기 위해 규칙을 평가해야 하며 , 버전 번호를 비교하고 미리 준비된 규칙을 평가해야 합니다.

다음에서 전체 URL을 작성하세요.

http://ftp.us.debian.org/debian/dists/<name>/<section>/binary-<architecture>/Packages.gz

이 파일에는 모든 개별 패키지의 상대 URL이 포함되어 있습니다.

또한 무결성을 확인하기 위해 파일의 해시를 확인하려면 다음 파일이 필요합니다.

http://ftp.us.debian.org/debian/dists/jessie/Release
http://ftp.us.debian.org/debian/dists/jessie/Release.gpg

...그리고 그 안의 공개 키를 사용하면 /etc/apt/trusted*이를 확인할 수 있습니다. 이 Release파일에는 다른 모든 파일의 해시가 포함되어 있으므로 이러한 해시를 확인해야 합니다.

데비안 패키지 저장소의 형식과 레이아웃에 관한 다른 미묘한 규칙을 고려하는 것을 잊어버렸을 것입니다.

보시다시피 더 좋은 건그냥 apt를 사용하세요.

답변3

설치하고 사용하는 것이 가장 좋습니다 apt.

패키지를 다운로드하려면 다음을 실행하세요.

apt-get download libgcc1

패키지 경로를 얻으려면 다음을 .deb실행하십시오.

apt-cache show libgcc1 | grep Filename

예제 출력:

Filename: pool/main/g/gcc-4.9/libgcc1_4.9.2-10_amd64.deb

편집 : 답변@남자.

패키지가 이미 설치되어 있으면 패키지 grep-available에서 사용할 수 있습니다.dctrl-tools

sudo apt install dctrl-tools

다음은 예입니다(검색 패키지 tar).

grep-available -P tar -s Filename

관련 정보