내 컴퓨터에 패키지를 설치하고 싶습니다.페도라 모자시스템에 있지만 이해되지 않는 많은 종속성이 있습니다(실제로는 필요하지 않다고 확신합니다).
나는 일했었다더반, 어디적절한체계적으로 제외할 수 있습니다.존경받는그리고제안패키지, 꼭 필요한 종속성만 설치합니다.
이것을 할 수 있는 방법이 있나요?냠?
답변1
내 명령 기록에서 이것을 찾았습니다.
dnf debuginfo-install -y \
--setopt=install_weak_deps=False \
cyrus-sasl-lib jsoncpp
분명히 이 기능에 대해 읽었습니다.https://bgstack15.wordpress.com/2017/05/13/dnf-ignore-weak-dependent/.
문서 패키지도 건너뛰려면 이를 --setopt=tsflags=nodocs
명령에 추가하세요.
답변2
아니요.
안타깝게도 RPM 기반 패키지 관리에는 한 가지 유형의 종속성만 있습니다. 종속성이 있거나 그렇지 않으며 그 사이에 있는 것이 아닙니다(여기를 읽어보세요). 내 경험에 따르면 Fedora의 종속성은 매우 제한적이며 그룹 설치를 수행하지 않으면 핵심 기능이 아닌 기능은 설치되지 않습니다.
제 생각에는 여러 수준의 종속성이 DEB 기반 패키지 관리의 강력한 기능 중 하나를 보여줍니다.
답변3
편집: 원래 질문에 대답하려면 예, 현재 약한 종속성을 지원하는 패키지 관리자를 사용하면 가능합니다. 예를 들어 Mageia에서 이 값은 urpmi --no-suggests foo
SuSe의 경우 와 같습니다 zypper in --no-recommends
. 최신 yum 버전도 유사한 기능을 구현해야 합니다. 그렇지 않으면 이러한 소프트 종속성은 쓸모가 없습니다.
실제로 이를 허용하는 rpm에는 약한 종속성이 있지만 안타깝게도 아직 Fedora/RHEL에서 사용하는 yum 및 최신 rpm.org 버전에 추가되지 않았습니다(현재는 rawhide를 통해서만 사용 가능). 확인하다http://lists.rpm.org/pipermail/rpm-maint/2014-February/003666.html최근 발표 및 구현 세부정보에 대해 알아보세요. 또한보십시오http://lists.baseurl.org/pipermail/yum-devel/2009-September/005844.html이전 토론을 위해. 이 지원을 설명하는 rpm-4.12의 변경 사항에 대한 Fedora 위키 페이지도 있습니다.https://fedoraproject.org/wiki/Changes/RPM-4.12
FWIW, SuSe는 수년간 소프트 종속성을 사용해 왔습니다.http://en.opensuse.org/Libzypp/Dependency#Weak_종속성다음 섹션에서는 rpm 브랜치가 지원하는 기능을 보여줍니다. Mandriva/Mageia 및 관련 브랜치도 꽤 오랫동안 소프트 종속성(권장 사항만)을 사용해 왔습니다.
따라서 원래 질문에 대답하려면 rawhide/rpm-4.12로 업그레이드하고 현재 지원되는 약한 종속성 중 하나를 사용하십시오.
내부 RPM 구현에 대한 자세한 내용이 필요하시면 기꺼이 공유해 드리겠습니다.
답변4
RPM 기반 배포판의 종속성은 dpkg 필수/권장/제안 접근 방식과 다르게 작동합니다.
종종 RPM 기반 배포판의 종속성은 "이 종속성이 충족되지 않으면 이 패키지는 작동하지 않습니다."와 동일하다고 생각할 수 있습니다. 그러나 패키지 관리자는 적절하다고 판단되는 경우 추가 종속성을 포함할 수 있는 예술적인 자유를 가지고 있습니다(자동으로 감지되지 않거나 어려운 요구 사항이라고 생각하기 때문에).
예를 들어 Debian/Ubuntu의 웹 애플리케이션에는 MySQL 서버 패키지에 대한 다양한 권장 종속성이 있을 수 있습니다. 그러나 MySQL 서버는 로컬 웹 서버에 위치할 필요가 없기 때문에 이는 어려운 요구 사항이 아니며 Fedora의 동일한 패키지에는 종속성이 없습니다.
RPM 접근 방식의 한 가지 문제점은 귀하가 확인한 바이며 때로는 종속성이 너무 많다는 것입니다. 제가 듣는 일반적인 질문은 "블루투스를 사용하지 않을 때 왜 이 패키지에 블루투스 라이브러리를 포함해야 합니까?"입니다. 기본 애플리케이션 패키지에 포함된 선택적 플러그인과 같은 항목이 이 문제의 원인인 경우가 많습니다.