Wie kann ich ein schlechtes kommerzielles Deb-Paket reparieren?

736
kevinarpe

Das Citrix ICA-Client (Receiver) 13- .debPaket weist einige bekannte Probleme auf. Wie kann ich das Paket ändern? Ich muss einige Abhängigkeiten entfernen und das Installationsskript ändern.

Ref: Wie installiere ich den Citrix ICA-Client (Receiver) 13 unter Debian 64-Bit-Linux?

2

1 Antwort auf die Frage

3
kevinarpe

Ich beantworte diese Frage selbst, weil andere diese Informationen möglicherweise nützlich finden. Dieses Q & A wurde zu einem anderen Thema inspiriert: Wie installiere ich Citrix ICA Client (Receiver) 13 unter 64-Bit-Linux von Debian?

  1. Erstellen Sie ein temporäres Verzeichnis und kopieren Sie die .debDatei in dieses Verzeichnis .
  2. Extrahieren Sie die .debDatei:ar vx archive.deb
  3. Es erscheinen drei Dateien:
    • debian-binary: Nicht Tasten
    • control.tar.gz: Konfiguration und Skripts zum Installieren und Deinstallieren
      • Diese Datei kann je nach verwendetem Komprimierungsformat eine andere Erweiterung haben.
    • data.tar.gz: Dateien, die installiert werden sollen
      • Diese Datei kann je nach verwendetem Komprimierungsformat eine andere Erweiterung haben.

Beide *.tar.gzDateien können je nach verwendetem Komprimierungsformat unterschiedliche Erweiterungen haben. Das .debFormat unterstützt einige verschiedene. Beide *.tar.gzDateien sind auch Tarbomben, sodass alle Dateien unter demselben Pfad explodieren. Besser ein temporäres Verzeichnis erstellen, kopieren und dann extrahieren.

Die Datei control.tar.gzhat zwei Dateien, die sich gut für das Hacken eignen:

  • control: Enthält die Liste der Paketabhängigkeiten. Sie können Abhängigkeiten hinzufügen oder entfernen.
  • postinst: Enthält das Skript nach der Installation. Sie können Befehle hinzufügen oder entfernen.

Erstellen Sie die *.tar.gzDateien als: tar -czvf control.tar.gz *oder ( data.tar.gz).

Erstellen Sie schließlich ein neues Archiv. Ordnung ist hier sehr wichtig:ar rv my_new_package.deb debian-binary control.tar.gz data.tar.gz

Sie können Ihr neues Paket mit den folgenden Befehlen testen:

  • Vorhandenes Paket deinstallieren: apt-get remove $package_name
    • ... wo $package_nameist der Name Ihres Pakets, zBicaclient
  • Neues Paket installieren: dpkg --install my_new_package.deb

Ref: http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/

Um zusätzliche Informationen hinzuzufügen, beachten Sie, dass das Deb-Format * nicht * tatsächlich mit dem `ar'-Format identisch ist. Wenn Sie Debs auf diese Weise manuell packen, ist "dpkg" normalerweise in Ordnung, andere wichtige Tools wie "apt-ftparchive" dagegen nicht. Wenn verfügbar, sollten Sie besser mit `dpkg-deb -R mypkg.deb tempdir` auspacken und mit` dpkg-deb -b tempdir` erneut packen. the paul vor 10 Jahren 1