Debian-Paket ohne Abhängigkeiten installieren

Manchmal möchte man ein Debian-Paket installieren ohne die automatischen Abhängigkeiten installieren.

Ich habe z.B. auf einem Server ein selbst kompiliertes Postfix laufen. Viele Pakete, z.B. bsd-mailx benötigen jedoch einen Mailclient, der das Paket mail-transport-agent erfüllt. Daher würde ein reines aptitude install bsd-mailx sofort den default-mta Exim installieren.

Natürlich wäre die sauberste Lösung, ein eigenes Postfix-Paket aus der aktuellen Version zu erstellen. Aber das ist mir für einen einzigen Server dann doch zu viel Aufwand. Es gibt jedoch keine Option für atp-get, dpkg oder aptitude, die Äbhängigkeiten eines Paketes komplett und für immer zu ignorieren.

Aber man kann sie recht einfach selbst entfernen:

  1. Paket herunterladen:
    aptitude download bsd-mailx
  2. Verzeichnis anlegen, in den das Paket entpackt werden soll:
    mkdir -p extract/DEBIAN
  3. Paket und Kontrolldateien entpacken:
    dpkg-deb -x bsd-mailx_8.1.2-0.20100314cvs-1_amd64.deb extract/
    dpkg-deb -e bsd-mailx_8.1.2-0.20100314cvs-1_amd64.deb extract/DEBIAN
  4. Gewünschte Abhängigkeit im Texteditor entfernen:
    nano extract/DEBIAN/control
  5. Paket wieder zusammensetzen und installieren:
    dpkg-deb -b extract
    dpkg -i extract.deb

6 comments

  1. Tom

    Danke für die Anleitung! Ich würde das Paket jedoch auf “hold” setzen, sonst kommt irgendwann ein neues nach und installiert Dir dann doch Deinen MTA:

    echo “bsd-mailx hold” | dpkg –set-selections

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>