GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ändere ich ein Deb-Paket?

Das Verfahren, das ich verwende, ist dieses:

Holen Sie sich die Quelle (über apt-get src).

Wenden Sie einen Patch an oder tun Sie, was geändert werden muss.

Führen Sie debchange --nmu aus und geben Sie eine Beschreibung der vorgenommenen Änderung ein. Dadurch wird die Versionsnummer automatisch erhöht, sodass das System nicht versucht, Ihr benutzerdefiniertes Paket wieder auf das Standardpaket zu "aktualisieren".

Führen Sie debuild aus .

Genießen Sie Ihre deb-Dateien.


Ich habe in den Ubuntu-Foren die folgende Anleitung zum Neuaufbau des Netzwerkmanagerpakets hier

gefunden

Betreff:Wie man die Quelle eines Debs patcht

Zitat:Ursprünglich geschrieben von Schnur

Ich möchte das Netzwerkmanagerpaket im Grunde mit einer Art benutzerdefiniertem Patch neu erstellen, um etwas zu testen. Also ich möchte:1. Holen Sie sich den Quellcode für die Ubuntu-"Version" des Netzwerkmanagers

Code:

sudo apt-get source network-manager

Zitat:2. Patchen Sie es mit meinem Patch. Die Quelldateien werden in das Arbeitsverzeichnis heruntergeladen. Weitere Informationen finden Sie hier.

Zitat:3. eine Deb-Datei erstellen, die ich anstelle des aktuellen Netzwerkmanagers installieren kann.

Code ausführen:

dpkg-buildpackage -rfakeroot -uc -b
im erstellten Verzeichnis.

Auch diesen Artikel gefunden:Debian-Leitfaden für neue PaketbetreuerKapitel 6 – Das Paket bauen

Ich bin mir nicht sicher, ob Ihre Änderungen durch ein Update aus den offiziellen Repositories verloren gehen. Sie können Ihren Patch immer einfach an die Paketbetreuer von compiz-gnome zurückschicken oder Ihr eigenes Repository für das aktualisierte Paket erstellen.


Die Antwort auf Nr. 3 und Nr. 4 lautet, dass Sie das Paket in Hold versetzen sollten Status, sobald Sie Ihre Version installiert haben. Dies weist das Debian-Paketverwaltungssystem an, alle zukünftigen Änderungen an diesem Paket zu "halten", wodurch Sie das Paket manuell verwalten können.

Aus der Debian-FAQ:

7.11 Was ist mit "Unbekannt", "Installieren", "Entfernen", "Löschen" und "Speichern" im Paketstatus gemeint?

Diese "want"-Flags sagen aus, was der Benutzer mit einem Paket machen wollte (entweder durch die Aktionen des Benutzers im Abschnitt "Select" von dselect oder durch die direkten Aufrufe des Benutzers von dpkg).

Ihre Bedeutungen sind:

  • unbekannt - der Benutzer hat nie angegeben, ob er das Paket haben möchte>

  • install - der Benutzer möchte, dass das Paket installiert oder aktualisiert wird

  • entfernen - der Benutzer möchte, dass das Paket entfernt wird, aber er möchte keine vorhandenen Konfigurationsdateien entfernen.

  • purge - der Benutzer möchte, dass das Paket vollständig entfernt wird, einschließlich seiner>Konfigurationsdateien.

  • hold - der Benutzer möchte, dass dieses Paket nicht verarbeitet wird, d.h. er möchte die>aktuelle Version mit dem aktuellen Status behalten, was auch immer das ist.

7.12 Wie kann ich ein Paket zurückstellen?

Es gibt drei Möglichkeiten, Pakete zurückzuhalten, mit dpkg, aptitude oder mit dselect.

Mit dpkg müssen Sie die Liste der Paketauswahl exportieren, mit:

dpkg --get-selections *> selections.txt

Bearbeiten Sie dann die resultierende Datei selections.txt, ändern Sie die Zeile mit dem Paket, das Sie behalten möchten, z. libc6, von hier:

libc6 installieren

dazu:

libc6 halten

Speichern Sie die Datei und laden Sie sie erneut in die dpkg-Datenbank mit:

dpkg --set-selections

Mit aptitude können Sie ein Paket mit

halten

aptitude hold Paketname

und entfernen Sie das Hold mit

aptitude unhold Paketname

Mit dselect müssen Sie den [S]elect-Bildschirm aufrufen, das Paket finden, das Sie in seinem>aktuellen Zustand halten möchten, und =' key (or drücken H'). Die Änderungen werden sofort live geschaltet,>nachdem Sie den [Auswählen]-Bildschirm verlassen.

Hinweis: Es wurden Probleme mit dem Aptitude Hold gefunden Befehl, also sollten Sie meiner Meinung nach den Befehl dpkg bevorzugen, um das Paket zu speichern. Alternativ können Sie das Paket über die GUI-Oberfläche des Synaptic-Paketmanagers halten (Paket> Version sperren). Ich bevorzuge die Verwendung von dpkg, weil es für mich gut funktioniert hat.

Für den Rest haben Sie bereits eine gute Antwort, also wage ich meine Meinung dazu nicht.


Linux
  1. So extrahieren Sie Dateien aus dem Debian-Paketarchiv DEB

  2. So überprüfen Sie die Details eines Softwarepakets in Ubuntu Linux

  3. So erstellen Sie ein Linux-RPM-Paket

  4. Wie überprüfe ich die Abhängigkeitsliste für ein Deb-Paket?

  5. Wie erstelle ich ein .deb-Paket von Github?

So installieren Sie das Debian-Paket (.deb).

So installieren Sie Deb-Pakete in Ubuntu, Debian &Mint

So installieren Sie das Deb-Paket auf OpenSUSE Leap oder Tumbleweed

Wie erstelle ich ein Paket in WHM?

Wie ändere ich cPanel-Kontopakete in cPanel-Reseller-Plänen?

So installieren Sie Yarn unter Ubuntu 18.04