때때로 apt는 ... (등등)의 종속성을 필요한 가장 깊은 수준까지 설치합니다. 그렇다면 추가 종속성이 없는 패키지가 있는지, 아니면 다른 모든 패키지가 의존하는 종속성 트리의 가장 깊은 수준에 하나의 패키지가 있는지 궁금합니다.
답변1
aptitude search '!~v !?depends(.) !?predepends(.) !?recommends(.) !?suggests(.)'
어떤 패키지에도 의존하지도, 사전 의존하지도, 권장하지도 않는 비가상 패키지가 나열되어야 합니다.
바라보다종속성 없이 적성을 그룹화하거나 패키지를 검색할 수 있나요?종속성이 없는 패키지의 경우.
답변2
Debian의 경우라고 말할 수는 없지만 Fedora에는 확실히 어떤 것에도 의존하지 않는 일부 패키지가 있습니다. 예를 들어 busybox
정적으로 구축됩니다. 패키지에는 텍스트 파일만 포함되어 있다고 상상할 수 있습니다. 이러한 파일은 아마도 이전에 설치된 다른 파일에 의존하지 않을 것입니다. 다음은 커널입니다. 계속 읽어보세요.
filesystem
시스템을 설치할 빈 디렉토리를 제공하는 패키지가 있습니다 . 이는 핵심 패키지이지만 해당 grub2-efi-x64
패키지만 직접적으로 종속됩니다.
모든 Linux 배포판의 거의 모든 패키지포함하다바이너리 또는/및 라이브러리는 일반적으로 핵심 커널 API를 제공하는 C 라이브러리에 의존합니다 glibc
.
glibc
Linux 커널 패키지에는 바이너리가 포함되어 있지만 파일 시스템이 아직 마운트되지 않은 경우에도 시스템을 실행해야 하기 때문에 바이너리에 의존하지 않습니다 . glibc
패키지에 따라 달라지나요 filesystem
? 설마. GRUB, LiLo 또는 ReFind와 같은 일부 부트 로더는 초기에 실행해야 하기 때문에 glibc에 의존하지 않습니다.
그런 다음 인터페이스를 내보내는 라이브러리를 쉽게 만들 수 있지만 C 루틴을 사용하지 않으므로 glibc에 의존하지 않습니다.
TLDR: 종류가 많고 다른 모든 패키지가 의존하는 하나의 패키지는 없습니다. 아무것도 필요하지 않은 가방도 있습니다.
답변3
물론 그렇습니다.
방금 이것을 확인하기 위해 짧은 스크립트(빠르고 더러운)를 만들었습니다.더반:
cd /var/lib/apt/lists
while read -r x; do
[[ ${y} == Package* && ${x} != Depend* ]] && echo "${y}"
y="${x}"
done < <( grep -h -E "^(Package|Depends):" *_Packages )
종속성이 없는 모든 패키지가 나열됩니다.
내 시스템에서는 7591개의 패키지가 발견되었습니다.