최근에는 Linux 패키지 관리를 배우고 있습니다(https://superuser.com/questions/393681/how-to-find-out-which-versions-of-a-package-can-i-install-on-apt,https://askubuntu.com/questions/340530/how-can-i-check-the-available-version-of-a-package-in-the-repositories,Linux 배포판마다 패키지 형식(및 패키지 관리자)이 다른 이유는 무엇입니까?,https://itsfoss.com/ubuntu-repository-mechanism/,https://itsfoss.com/sources-list-ubuntu/)
내가 올바르게 이해했다면 /etc/apt/sources.list
(및 .list
/ .sources
의 파일 /etc/apt/sources.list.d/
) 은 apt-get
패키지/소스 코드를 어디서 얻을 것인지 (및 관련 유틸리티)를 제어합니다.
현재 버전이 jammy이므로 항목은 sources.list
다음과 같습니다.
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted
deb-src http://archive.ubuntu.com/ubuntu/ jammy main restricted
running apt-file update
...이것은 (그러면 ) at의 사용 가능한 모든 버전이 apt-cache policy libuv1
검색된다는 것을 의미한다고 생각합니다.libuv1
http://archive.ubuntu.com/ubuntu/dists/jammy/main/
$ apt-cache policy libuv1
libuv1:
Installed: 1.43.0-1
Candidate: 1.43.0-1
Version table:
*** 1.43.0-1 500
500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
$
$ apt-cache madison libuv1
libuv1 | 1.43.0-1 | http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages
libuv1 | 1.43.0-1 | http://archive.ubuntu.com/ubuntu jammy/main Sources
$
내 질문은 다음과 같습니다libuv1
편집하지 않고 jammy 이외의 버전에 대해 사용 가능한 패키지 버전을 쿼리 할 수 있는 방법이 있습니까 sources.list
?
위 출력에서 apt-cache
1.43.0-1은 패키지와 소스 모두로 사용할 수 있는 유일한 버전인 것으로 보입니다. 하지만 난 알아libuv의 작성자가 최신 버전을 가지고 있습니다.. 최신 libuv1
패키지나 소스 코드 의 가용성을 Jammy가 아닌 패키지 저장소에 쿼리하는 것이 가능한지 궁금합니다 . 많은 주의를 기울여서, 나는 잊어버리고 실수로 실행할까봐 걱정되기 때문에 deb-src http://archive.ubuntu.com/ubuntu/ mantic main restricted
to와 같은 항목을 추가하는 것에 대해 불안합니다 .sources.list
apt-get upgrade
프랑켄데비안?
그냥 알고 싶어요 - 단지 호기심 때문이라면 -~에 관계없이소스/패키지 의 새 버전이 libuv1
편집 위험 없이 현재 버전이 아닌 다른 버전에 존재합니다. sources.list
방법이 있습니까? 즉, sources.list
가용성을 쿼리하고 동시에 패키지를 설치하려면 편집해야 합니까? 아니면 파일을 편집하지 않고도 패키지 가용성을 쿼리할 수 있습니까?
답변1
콘스탄틴 AB의 답변언급되었지만 자세히 설명되지 않은 것은 rmadison
귀하가 찾고 있는 도구입니다.
설치 devscripts
패키지:
$ sudo apt install --no-install-recommends devscripts wget
( devscripts
선택적 종속성이 많이 있으므로 명시적으로 --no-install-recommends
; rmadison
need wget
, 이는 이러한 선택적 종속성 중 하나입니다.) 그런 다음 rmadison
온라인 데이터베이스를 쿼리하기 위해 실행합니다.
$ rmadison libuv1
libuv1 | 1.8.0-1 | xenial/universe | source, amd64, arm64, armhf, i386, powerpc, ppc64el, s390x
libuv1 | 1.18.0-3 | bionic | source, amd64, arm64, armhf, i386, ppc64el, s390x
libuv1 | 1.34.2-1ubuntu1 | focal | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.34.2-1ubuntu1.3 | focal-security | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.34.2-1ubuntu1.3 | focal-updates | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.43.0-1 | jammy | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.44.2-1 | lunar | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.44.2-1 | mantic | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.46.0-2ubuntu1 | noble | source, amd64, arm64, armhf, i386, ppc64el, riscv64, s390x
libuv1 | 1.46.0-3 | noble-proposed | source, amd64, arm64, i386, ppc64el, riscv64, s390x
구문은 매우 간단하며 rmadison
관심 있는 바이너리 및/또는 소스 패키지의 이름이 뒤에 옵니다.
Debian에서 직접 가져오기 때문에 libuv1
대부분의 경우 변경 사항이 없으므로 해당 사항도 확인할 수 있습니다.
$ rmadison -u debian libuv1
libuv1 | 1.24.1-1+deb10u1 | oldoldstable | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
libuv1 | 1.24.1-1+deb10u1 | oldoldstable-debug | source
libuv1 | 1.40.0-2 | oldstable | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
libuv1 | 1.44.2-1 | stable | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
libuv1 | 1.46.0-2 | testing | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, s390x
libuv1 | 1.46.0-3 | unstable | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el, riscv64, s390x
libuv1 | 1.46.0-3 | unstable-debug | source
따라서 libuv
1.47.0은 Debian이나 Ubuntu용으로 아직 패키지되지 않았습니다.
(Debian을 사용하는 독자의 경우 기본 설정이 반대입니다. 옵션 rmadison
없이 -u
Debian을 쿼리 하고 rmadison -u ubuntu
Ubuntu를 쿼리합니다.)
답변2
그날 나는 rmadison
devscripts 패키지를 사용했습니다.
요즘은 너무 게으른 나머지 과한 짓을 하기도 합니다.
podman run -it --rm debian:$version sh -c "apt-get update > /dev/null; apt-get info $package"
(설정하기 쉬우며 $version
3 $package
줄 쉘 스크립트에서 $1, $2로 시작합니다).
물론 이것은 간단한 질문에 대한 답변으로 전체 Linux 컨테이너를 시작(또는 아직 존재하지 않는 경우 다운로드)합니다. 하지만 이렇게 하면 다른 도구의 구문을 기억할 필요가 없으며 동일한 트릭을 사용하여 "xfce를 사용하여 Debian 13에 clementine을 설치하는 데 몇 번의 다운로드가 필요합니까?"와 같은 더 복잡한 질문에 답할 수 있습니다...