Hi Cae,
da ich das nur auf einer einzigen Maschine machen möchte, begnüg ich mich mit einem einfachen "dpkg -i
paketname" Also beschäftige ich mich nicht weiter mit der lokalen Repo (trotzdem danke für den link) sondern damit, wie ich das Paket "arpwatch" patchen tue und daraus ein Paket baue um es anschließend installieren zu können.
Ich habe mir den Link zum Gebäude-Tutorial (Building-Tutorial
) angeschaut, jedoch hänge ich an dem Schritt
EDIT THE SOURCE CODE
ungefähr in der Hälfte des Tutorials. Dort wird nämlich beschrieben, wie man mit dpatch arbeitet. Ich habe mir dpatch mal installiert, aber ich wüßte jetzt nicht, wie ich das äquivalente Kommando eingeben muss. In dem Tutorial heißt es ja:
To create a new patch, you'll need to do the following. Type:
dpatch-edit-patch 80_bts585426_fix_help 70_bts537138_disambiguate_recurse.dpatch
This will start a new shell inside a special environment, where you can edit your files and dpatch will afterwards take care of getting the differences with the original.
the first parameter is the name assigned to the new patch : 80_bts585426_fix_help
the second parameter is the last patch that should be applied before applying the new one : 70_bts537138_disambiguate_recurse.dpatch
The name of the patch was chosen to match the pattern already established by the maintainer.
In meinem Falle ist es doch aber so, daß ich ja kein .patch oder .diff file erstellen möchte, da ich ja bereits solch eine Datei habe (0001-Ignore-802.1Q-frames.patch). Diese Datei, die ich bereits vom Internet heruntergeladen habe, schaut aus wie eine .diff Datei wenn ich sie mit 'cat' betrachte.
Brauche ich also dpatch oder wie genau patch ich nun diese vorliegende Patch-Datei in die arpwatch.c die ich aus den sourcen heruntergeladen habe und sich im verzeichnis /tmp/workdir/arpwatch-2.1a15/ befindet?
Kann es also sein, daß ich
dpatch gar nicht erst benötige, sondern irgendwie mit dem Befehl
patch arbeiten sollte, um die arpwatch.c zu patchen? und falls ja, wie baue ich das Paket, nachdem die arpwatch.c erfolgreich gepatcht wurde? mit fakeroot wie im BuildingTutorial irgendwo erwähnt?
EDIT: Hab's grad genauso gemacht, also:
Code: Alles auswählen
patch /tmp/work.dir/arpwatch-2.1a15/arpwatch.c /root/downloads/0001-Ignore-802.1Q-frames.patch
und dann einfach
Da es ja kein patch directory gibt in dem Falle von arpwatch (ich hab ja auch keins extra erstellt, da ich dpatch nicht genutzt hatte), wurde mit dem fakeroot-Befehl einfach das Paket gebaut und zwar in
/tmp/work.dir/
arpwatch_2.1a15-1.2_amd64.deb. Nachdem ich dann mit
das neu gebaute Paket installiert habe, verschwanden auch schon die besagten Fehlermeldungen aus /var/log/syslog. Scheint so, als ob der Patch also gegriffen hat und ich ihn erfolgreich anwenden konnte.
Mich würde trotzdem aber noch interessieren, ob es unbedingt hätte "fakeroot debian/rules binary" sein müssen, um das Paket zu bauen. Oder wie wäre hier der richtige empfehlenswertere Schritt gewesen?
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.