Będąc wcześnie adoptowanym i używającym codziennych wersji 11.04, czasami spotykam się z sytuacją, gdy niektóre pakiety wymagają wcześniejszych wersji innych pakietów niż te, które zainstalowałem. Zwykle nowsze (ale odrzucone) wersje potrzebnych pakietów zapewniają pełną funkcjonalność swoich starszych wersji.
Jeśli użyję dpkg -i --force-depends-version
do zainstalowania pakietów zależnych, wszystko działa dobrze, nigdy nie widziałem problemu.
Czy zamiast ręcznie pobierać i instalować każdy pakiet, mogę po prostu udawać, że system ma zainstalowaną określoną wersję pakietu, gdy jest nowsza? Czy istnieje --force-depends-version
kluczowy odpowiednik apt-get
?
Pomimo odpowiedzi, która została już zaakceptowana, wprowadzenie przyjętej lepiej oddaje proces:
Istnieje pakiet Debian o nazwie,
equivs
który może tworzyć atrapy pakietów. Zainstaluj, uruchamiającsudo apt-get install -y equivs
Po zainstalowaniu generujesz plik „kontrolny” szablonu za pomocą następującego polecenia:
equivs-control postfix
(zamieńpostfix
na nazwę pakietu). W moim przypadku mógłbym użyć alternatywnej nazwy pakietu, np.postfix-custom
Lub cokolwiek innego, ale mój niestandardowy pakiet się spełni lubProvides
zależność instalacjipostfix
(ponownie zamieniającpostfix
na dowolny pakiet, który chcesz.Po wygenerowaniu pliku kontrolnego szablonu zazwyczaj usuwam wiele skomentowanych instrukcji (instrukcji zaczynających się od
#
). Jednym z nich, które chciałbym zachować, jestProvides:
stwierdzenie, w którym mogę powiedzieć, że mój pakiet zapewnia możliwości oferowane przez inny pakiet, który próbuję sfałszować, np.Provides: postfix
Mówi mechanizmowi rozwiązywania zależności Debian / Ubuntu, że mój pakiet - niezależnie od nazwy - zapewnia te same możliwości pakietu docelowego, ponowniepostfix
lub cokolwiek innego. To pozwala mi nazwać mój pakiet niezależnie od pakietu docelowego, aby uniknąć nieporozumień. Erlang Factory robi to ze swoimi rzeczami, np .esl-erlang
Zapewniaerlang
.Wreszcie, po utworzeniu pliku kontrolnego szablonu, możesz
equivs-build
wygenerować fałszywy pakiet, npequivs-build /path/to/generated/control/file
.Zbudowanie pakietu zajmuje kilka sekund, a następnie można uruchomić
sudo dpkg -i my_package_name*.deb
Dla zaawansowanych użytkowników, jeśli plik kontrolny szablonu ma
Requires:
linię zależności, możesz użyć narzędzia takiego jakgdebi
instalacja pakietu, a także różnych pakietów, które deklaruje jako zależności.źródło