Powiedzmy, że istnieje oprogramowanie, którego nie chcę instalować apt
, ale ręcznie. (TeXLive, ponieważ chcę korzystać z wersji 2011 i apt
ma tylko wersję 2009).
Powiedzmy, że istnieje inne oprogramowanie, które chciałbym zainstalować apt
, które jednak zależy od pierwszego oprogramowania. (Vim LaTeXSuite, ponieważ instalacja ręczna jest trudna do użytku w całym systemie).
Domyślnie apt
nie „widzi” pierwszego oprogramowania i instaluje wiele niepotrzebnych i niepożądanych cruft (tj. TeXLive 2009) tylko po to, aby spełnić metadane zależności.
Jak mogę:
Powiedz,
apt
że dany pakiet (np.texlive
) Jest zainstalowany we wszystkich praktycznych celach i że nie powinien być instalowany jako zależność od innego pakietu?Powiedz,
apt
aby zainstalować dany pakiet (np.vim-latexsuite
) Bez zawracania sobie głowy jego zależnościami?
Przeszukałem różne apt
powiązane strony i znalazłem puste, a także znalazłem to pytanie na tej stronie, ale czuję, że musi być mniej hackerski sposób, aby to zrobić, prawda?
(Z czasów Gentoo pamiętam emerge --inject
i /etc/portage/package.provides
zasadniczo szukam apt
odpowiedników.)
źródło
Odpowiedzi:
Powinieneś użyć tego
equivs
pakietu do wygenerowania meta-pakietów zapewniających te zależności, a następnie użyćdpkg
do zainstalowania tych pakietów.Instalowanie
equivs
i czytanie dokumentacji powinno wystarczyć, ale ten przewodnik dla Ubuntu jest dość obszerny i powinien mieć zastosowanie również do innych systemów APT.Ponadto, jeśli uważasz, że pakiet powinien być w stanie zostać zainstalowany bez określonej zależności, powinieneś zgłosić błąd w pakiecie, wyjaśniając przypadek, w którym zależność nie jest potrzebna.
W tym przypadku
texlive-base-bin
wydaje się , że jest to tylko „zalecane”, a nie „zależność” przynajmniej w podstawowej dystrybucji Debiana (prawdopodobnie częściowo, ponieważtexlive
jest to tak ogromny pakiet), ale ponieważ powszechne jest instalowanie wcześniejszego TeX Live na Debianie od czasu wersja dystrybucyjna często pozostaje znacznie w tyle (z powodu tego, że pakiet jest tak bestią, że często nie można go spakować bez znacznej pracy, co w większości wykonuje jedna lub kilka osób, które twierdzą, że żyją obok Debiana),equivs
trick jest często używany w TeX Live (wow, to zdanie wymknęło się spod kontroli :-)).Dodatek : Aby uzyskać bardziej szczegółowe instrukcje dla osób chcących zainstalować TeXLive poza systemem pakietów, instrukcje te w TeX.SX są bardziej rozbudowane i najprawdopodobniej będą nadal aktualizowane. Zawierają również bardziej wyraźne instrukcje dotyczące
equivs
kroku.źródło
equivs
pakiet.equivs
działało świetnie. Utworzyłem wersję 9999texlive-base-bin
, zastępując oryginalny „atrapę” o tej samej nazwie (dostarczonej przeztexlive-binaries
), i zainstalowałemvim-latexsuite
bez żadnych problemów.Możesz użyć
--nodeps
flagi na dpkg, która powinna zainstalować pakiet w ogóle bez zależności.Na Serverfault jest bardzo podobne pytanie, na które również warto się przyjrzeć
źródło
Poniższe usunie zależność z pliku .deb, w tym przypadku usuwając zależność libperl5.20 z freeradius:
Pozwala to zainstalować pakiet bez wiedzy, że istnieje zależność.
Jeśli ręcznie instalujesz określone wersje pakietów, możesz także przestać
apt-get upgrade
aktualizować pakiet w przyszłości:źródło