Wie konvertiere ich ein .run-Installationsprogramm in ein .deb-Installationsprogramm?

Wie konvertiere ich ein .run-Installationsprogramm in ein .deb-Installationsprogramm?

Ich verwende Ubuntu 14.04.

Ich habe viele Systembibliotheken von Drittanbietern, die ich für Projekte verwende, aber die Verwaltung der Bibliotheksinstallation ist schwierig. Einige Bibliotheken sind .deb-Dateien, einige werden aus dem Quellcode erstellt (aus dem ich dann eine .deb-Datei erstelle) und einige sind .run-Dateien.

Mein Ziel ist es, ein eigenes persönliches Repository zu haben, das diese Systembibliotheken von Drittanbietern in Form von DEB-Dateien hostet. Mein Problem ist die Konvertierung von RUN-Dateien in DEB-Dateien.

Ich habe versucht, mit checkinstall die .deb-Datei auszuführen (insbesondere die gefundenen UEye-KameratreiberHier), in der Hoffnung, dass checkinstall die Änderungen an meinem Dateisystem erfassen würde, aber das war leider eine Katastrophe.

Gibt es saubere Möglichkeiten, .run-Dateien in .deb-Dateien umzuwandeln?

Antwort1

Es gibt keine einfache oder universelle Methode, dies zu tun. Der erste Teil einer allgemeinen .runDatei (ich werde die ATI-Treiberinstallationsdatei als Referenz verwenden) ist ein Skript, gefolgt von einem Datenstrom komprimierter Daten, der sofort im Dateisystem gespeichert wird. Um es in eine Deb-Datei umzuwandeln, müssen Sie den Datenstrom in einem Verzeichnis entpacken, das debian/Verzeichnis erstellen und Ihre rulesDatei bearbeiten, sodass dhmake einfach die Verzeichnisstruktur übernimmt und die Dateien dorthin kopiert, wo sie sein sollten, da Sie kein Makefileoder ein Äquivalent haben, das das Skript verwendet install.

Ich empfehle dringend, den Software-Distributor einfach zu bitten, eineDebian-Paketda die meisten dieser Run-Dateien nicht einmalDFSG-kompatibel.

Antwort2

Letztendlich habe ich Folgendes getan:

  1. Erstellen Sie eine benutzerdefinierte .deb-Datei, die die .run-Datei enthält
  2. „Installieren“ Sie die .run-Datei in /tmp
  3. Zum Ausführen der .run-Datei verwenden postinst(und anschließend löschen)
  4. Diese spezielle .run-Datei stellt tatsächlich ein eigenes Deinstallationsskript bereit, das die ursprüngliche .run-Datei nicht benötigt. Daher verwende ich es, postrmum dieses Skript auszuführen.

Funktioniert alles bestens. Keine Beanstandungen und ganz einfach.

verwandte Informationen