의존성을 수동으로 해결한다고 apt에게 알리는 방법은 무엇입니까?


14

를 통해 설치하고 싶지 apt않지만 수동으로 설치하려는 소프트웨어가 있다고 가정 합니다. (2011 릴리스를 사용 apt하고 2009 버전 만 있기 때문에 TeXLive .)

를 통해 설치하려는 다른 소프트웨어 apt가 있지만 첫 번째 소프트웨어에 따라 다릅니다 . (Vim LaTeXSuite는 시스템 전체에서 사용하기 위해 수동으로 설치하기가 어렵 기 때문입니다.)

기본적으로 apt첫 번째 소프트웨어를 "인식"하지 않고 의존성 메타 데이터를 만족시키기 위해 불필요하고 환영받지 못하는 많은 부분 (예 : TeXLive 2009)을 계속 설치합니다.

어떻게해야합니까 :

  • 에게 apt주어진 패키지 (예를 들어 있음 texlive) 있다 가 다른 패키지의 종속성으로 설치되지 않도록 모든 실제적인 목적을 위해 설치하고,?

  • 에게 apt주어진 패키지 (예를 설치 vim-latexsuite종속성에 대해 귀찮게하지 않고)?

나는 다양한 통해 체로 한 apt- 관련 맨 페이지와 빈 등장, 또한 발견 이 질문 이 사이트를하지만이 느낌 이 아니,이 작업을 수행하는 덜 hackish 방법이?

(내 Gentoo 시대부터 나는 기억 emerge --inject하고 /etc/portage/package.provides기본적으로 apt동등한 것을 찾고 있습니다.)


TeX Live 2011은 최근 데비안 시드 (Debian Sid)에 추가되었으므로 조만간 민트에도 전파 될 것입니다. 정말 모험적이라면 데비안 시드에서 패키지를 얻을 수 있지만이 경우 많은 패키지와 관련이 있기 때문에 좋은 해결책이 아닐 수도 있습니다. launchpad.net/~texlive-backports/+archive/ppa 설정에 PPA가 있으며 ( Ubuntu 의이 버그 보고서 참조 ) Mint에서도 사용할 수 있습니다.
— Daniel Andersson


3 년 후에는 의견을 공개하지 않고 설명 할 필요가 있습니까?
— DevSolar

@ DevSolar : 누군가가 질문을 직렬로 다운 다운 한 것처럼 보이며 둘 다 이유를 명확하게하지 않고 사실 후 3 년 동안 대답합니다. 그냥 어깨를 으 and하고 나아가는 것이 가장 좋습니다 :-).
— Daniel Andersson

답변:


13

equivs패키지를 사용하여 이러한 종속성을 제공하는 메타 패키지를 생성 한 다음 dpkg이 패키지를 설치 하는 데 사용해야 합니다.

equivs문서를 설치 하고 읽는 것으로 충분하지만 Ubuntu 에 대한이 안내서 는 상당히 광범위하며 다른 APT 시스템에도 적용되어야합니다.


또한 지정된 종속성없이 패키지를 설치할 수 있다고 생각되면 종속성이 필요하지 않은 경우를 설명하는 패키지에 대해 버그를 신고해야합니다.

이 경우texlive-base-bin 기본 데비안 배포판에서 "권장"이 아닌 "권장" 인 것 같지만 (아마도 texlive그러한 패키지가 많기 때문에 부분적으로 는 데비안에 설치 한 것이 일반적이기 때문에) 배포판 버전은 종종 뒤쳐져 있습니다 (패키지가 상당한 작업 없이는 패키지로 만들 수없는 짐승이기 때문에, 대부분 데비안 옆에 생명이 있다고 주장하는 한 명 또는 소수의 사람들이 수행합니다). equivs트릭은 종종 TeX Live와 함께 사용됩니다 (와, 문장이 잘못되었습니다 :-)).


추가 : 패키지 시스템 외부에 TeXLive를 설치하려는 사용자를위한 자세한 지침은 TeX.SX에 대한 이 지침 이보다 광범위하며 계속 업데이트 될 것입니다. 또한 equivs단계 에 대한보다 명확한 지시 사항도 포함 합니다.


어떻게 이런 일이 일어 났는지 모르겠지만 Linux Mint는 texlive를 "어려운"종속성으로 만듭니다 equivs. 패키지 를 사용해보십시오 .
— DevSolar

equivs잘 작동했습니다. 9999 버전의을 만들어 texlive-base-bin동일한 이름 (에서 제공 texlive-binaries) 의 원래 "더미"패키지를 재정의하고 vim-latexsuite문제없이 설치했습니다 .
— DevSolar

1

--nodepsdpkg 에서 플래그를 사용할 수 있으며 ,이 패키지는 종속성없이 패키지를 설치해야합니다.

   --ignore-depends=package,...
          Ignore  dependency-checking for specified packages (actu-
          ally, checking is performed, but only warnings about con-
          flicts are given, nothing else)

있습니다 에 Serverfault에 매우 비슷한 질문 뿐만 아니라 보는 가치가있다


어 ... 그런거 없어? (적어도 여기에있는 Linux Mint 12 박스에는 없습니다.)
— DevSolar

1
흠, 나는 실수를 한 것 같습니다-dpkg에 대한-apt-get이 아닙니다-이것을 반영하기 위해 내 대답을 편집했습니다
— Journeyman Geek

그것은 데비안 파생물과 끝없는 혼란을 일으킨다 : 수많은 패키지 관리자 인터페이스. 나는 그것들을 섞을 때 관련된 넘어짐이 없다고 가정합니까? 아니면 그들 중 하나를 고수해야합니까?
— DevSolar

모든 것은 dpkg를 기본으로합니다. 본질적으로 apt와 aptitude는 그에 대한 프론트 엔드이며 apt와 aptitude에 대한 프론트 엔드가 있습니다. dpkg는 일반적으로 .deb 파일에서 패키지를 설치하려는 경우에 사용됩니다. 나는 대부분 apt-get과 dpkg를 고수하는 경향이있다. '기본'데비안 맛 패키지 관리자를 혼합하는 것은 일반적으로 합리적으로 안전해야합니다
— Journeyman Geek

vim-latexsuite에 의존하는 것이 없기 때문에 귀하의 답변을 실제 문제에 대한 선호 솔루션 으로 만듭니다. 그러나,이 솔루션은 인 것으로 "texlive"표시하지 않는 선물을 , 그것은 단지 그것을 요구에서 VIM-latexsuite 유지합니다. 따라서 Daniel의 대답은 질문의 제목에 더 적합합니다. 체크 표시가 그에게 가고, kudos가 당신에게갑니다. ;-)
— DevSolar

1

다음은 .deb 파일에서 종속성을 제거하며,이 경우 freeradius에서 libperl5.20 종속성을 제거합니다.

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius
dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN
sed -i  -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control
dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb

따라서 종속성이 존재한다는 사실을 알 필요없이 패키지를 설치할 수 있습니다.

특정 버전의 패키지를 수동으로 설치하는 apt-get upgrade경우 나중에 패키지 업그레이드 를 중지 할 수도 있습니다 .

apt-mark hold freeradius
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.