의존성을 수동으로 해결한다고 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.