Dzięki programowi equivs [1] łatwo można utworzyć pakiety, których jedynym zadaniem będzie spełnienie zależności innych pakietów. Po co? Czasami zdarza się, że opiekunowie pakietów ustawią swoim pakietom zależności, których wcale nie chcemy instalować.

Przykład — pakiet smplayer wymaga pakietu mplayer (lub pakietu „udostępniającego” pakiet mplayer). Ja mam zainstalowany mplayer2 [2] z repozytorium debian-multimedia, wersja z tego repozytorium nie udostępnia pakietu mplayer, można ją zainstalować obok pakietu mplayer. Zatem aby zainstalować smplayer, normalnie musiałbym w zależnościach doinstalować mplayer i jeszcze kilka jego zależności, których wcale nie potrzebuję. Na szczęście dzięki programowi equivs łatwo można ten problem ominąć.

nano mplayer
Package: mplayer
Version: 11:2+fake
equivs-build mplayer
dpkg -i mplayer_2+fake_all.deb

Efekt:

mplayer:
  Zainstalowana: 11:2+fake
  Kandydująca:   11:2+fake
  Tabela wersji:
 *** 11:2+fake 0
        990 file:/usr/local/repo/ stuff/ Packages
        100 /var/lib/dpkg/status
     3:1.0~rc4+svn20110308-0.2 0
        990 http://www.debian-multimedia.org/ testing/main amd64 Packages
        980 http://www.debian-multimedia.org/ unstable/main amd64 Packages
     2:2.0+git+20110408~frickel.1 0
        400 http://frickelplatz.de/debian/ sid/main amd64 Packages
     2:1.0~rc4.dfsg1-2 0
        990 http://ftp.de.debian.org/debian/ testing/main amd64 Packages
        980 http://ftp.de.debian.org/debian/ unstable/main amd64 Packages

Cały system zarządzania pakietami Debiana uważa, że mplayer jest zainstalowany, a w rzeczywistości jednak tak nie jest. Tutaj dodatkowo umieściłem pakiet w lokalnym repozytorium, ale to nie dotyczy już tego tekstu.

Oczywiście ten przykład to tylko najbardziej prymitywne użycie equivs. Wszelkie informacje (zależności, pakiety polecane, sugerowane itp.), które deweloperzy ustawiają w pliku control prawdziwych pakietów, można ustawiać i tutaj.


Przypisy:

  1. http://packages.debian.org/equivs
  2. http://packages.debian.org/smplayer