(gelöst) dpkg-scanpackages isolieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
guennid

(gelöst) dpkg-scanpackages isolieren

Beitrag von guennid » 08.11.2013 18:58:55

Das Thema gehört hier wohl nicht so richtig rein, aber was Besseres ist mir nicht eingefallen.

Ich mülle mir regelmäßig mit Debiandpkg-dev die Platte zu, obwohl ich lediglich das Programm dpkg-scanpackages benötige. Kann mir jemand sagen, ob und gegebenenfalls wie man das aus dem Paket herauslösen und eventuell alleine installieren kann?

Grüße, Günther
Zuletzt geändert von guennid am 09.11.2013 15:00:58, insgesamt 1-mal geändert.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: dpkg-scanpackages isolieren

Beitrag von syssi » 08.11.2013 19:16:45

Wofuer genau benutzt du dpkg-scanpackages? Moeglicherweise gibt es ein Bordmittel, welches fuer dich die gleiche Aufgabe erfuellt oder hast du es wirklich auf Paketlisten abgesehen?

guennid

Re: dpkg-scanpackages isolieren

Beitrag von guennid » 08.11.2013 19:21:38

Ich benutze es seit ca. acht Jahren, um selbstkompilierte debs in apt einbinden, installieren und auch wieder purgen zu können. Für meinen Geschmack sehr unkompliziert. Damals empfohlen von pdreker - kennt hier niemand mehr (außer Sebastian und Martin :wink: ) - auch niemand nicht. :mrgreen:

Grüße, Günther

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: dpkg-scanpackages isolieren

Beitrag von syssi » 08.11.2013 19:29:55

In diesem Fall nutzt du das Tool dafuer, wofuer es gedacht ist. ;-) Eine Alternative ist mir nicht bekannt. Das Paket dpkg-dev ist nur 1.5MB gross. Wenn man die Recommends ignoriert und nur die Abhaengigkeiten installiert (libdpkg-perl, bzip2, xz-utils, patch, make, binutils, base-files) sollte es doch ziemlich ueberschaubar sein. 50% der Abhaengigkeiten gehoeren sogar zur Basis-Installation und werden schon vorhanden sein. Echt so schlimm? Da wuerde ich vorher die 115MB kdewallpapers loeschen. ;-)

guennid

Re: dpkg-scanpackages isolieren

Beitrag von guennid » 08.11.2013 19:38:02

Wenn man die Recommends ignoriert und nur die Abhaengigkeiten installiert (libdpkg-perl, bzip2, xz-utils, patch, make, binutils, base-files) sollte es doch ziemlich ueberschaubar sein.
Ignorieren der recommends halte ich eh für Pflicht - sehe bis heute nicht ein, warum man den User gezwungen hat, dazu eigens eine apt.conf anlegen zu müssen - aber das ist ein anderes Thema.

Und überschaubar ist es nicht. Auf Maschinen, auf denen eigentlich nichts kompiliert wird, zieht dpkg-dev nach der Installation des Grundsystems einen ganzen Rattenschwanz für scanpackages nicht benötigter Pakete nach sich. Bei der nächsten Installation schau ich mal, wieviel es genau ist - mir war's immer zu viel. :wink:
kdewallpapers
Ist das was zum Essen? :mrgreen:

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: dpkg-scanpackages isolieren

Beitrag von syssi » 08.11.2013 20:01:35

Hmmm...

Code: Alles auswählen

$ mkdir freshinstall
$ debootstrap wheezy freshinstall
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id ED6D65271AACF0FF15D123036FB2A1C265FFB764)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional required dependencies: insserv libbz2-1.0 libdb5.1 libsemanage-common libsemanage1 libslang2 libustr-1.0-1 
I: Found additional base dependencies: libept1.4.12 libgcrypt11 libgnutls26 libgpg-error0 libidn11 libnfnetlink0 libp11-kit0 libsqlite3-0 libtasn1-3 libxapian22 
I: Checking component main on http://ftp.us.debian.org/debian...
...
$ chroot freshinstall

$ echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf
$ echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf
$
$ apt-get -y install dpkg-dev
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  binutils bzip2 libclass-isa-perl libdpkg-perl libswitch-perl libtimedate-perl make patch perl perl-modules
Suggested packages:
  binutils-doc bzip2-doc debian-keyring make-doc ed diffutils-doc perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl libpod-plainer-perl
Recommended packages:
  gcc c-compiler build-essential fakeroot libalgorithm-merge-perl libfile-fcntllock-perl
The following NEW packages will be installed:
  binutils bzip2 dpkg-dev libclass-isa-perl libdpkg-perl libswitch-perl libtimedate-perl make patch perl perl-modules
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 15.6 MB of archives.
After this operation, 51.8 MB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ wheezy/main bzip2 amd64 1.0.6-4 [50.1 kB]
Get:2 http://ftp.us.debian.org/debian/ wheezy/main libclass-isa-perl all 0.36-3 [12.3 kB]
Get:3 http://ftp.us.debian.org/debian/ wheezy/main perl-modules all 5.14.2-21+deb7u1 [3440 kB]
Get:4 http://ftp.us.debian.org/debian/ wheezy/main perl amd64 5.14.2-21+deb7u1 [4407 kB]
Get:5 http://ftp.us.debian.org/debian/ wheezy/main libswitch-perl all 2.16-2 [21.0 kB]                                                                                             
Get:6 http://ftp.us.debian.org/debian/ wheezy/main patch amd64 2.6.1-3 [121 kB]                                                                                                    
Get:7 http://ftp.us.debian.org/debian/ wheezy/main binutils amd64 2.22-8 [4800 kB]                                                                                                 
Get:8 http://ftp.us.debian.org/debian/ wheezy/main libtimedate-perl all 1.2000-1 [41.2 kB]                                                                                         
Get:9 http://ftp.us.debian.org/debian/ wheezy/main libdpkg-perl all 1.16.12 [951 kB]                                                                                               
Get:10 http://ftp.us.debian.org/debian/ wheezy/main make amd64 3.81-8.2 [396 kB]                                                                                                   
Get:11 http://ftp.us.debian.org/debian/ wheezy/main dpkg-dev all 1.16.12 [1349 kB]                                                                                                 
Fetched 15.6 MB in ...
Perl ist der Uebeltaeter!

guennid

Re: dpkg-scanpackages isolieren

Beitrag von guennid » 08.11.2013 20:13:17

Sauber Frau syssi! :THX:

Code: Alles auswählen

$ debootstrap wheezy freshinstall
Wie hast du das gemacht? 8O

Bedenke, dass debootstrap erheblich sparsamer installiert, als eine Installation der Grundsystems via installer.

Was hältst du von folgendem Versuch: Installieren wie gehabt, das binary von dpkg-scanpackages sichern, alles purgen und das binary wieder zurückspielen?

Wurde mir mal was in der Richtung empfohlen, wenn ich recht erinnere. :wink:

Grüße, Günther

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: dpkg-scanpackages isolieren

Beitrag von ThorstenS » 08.11.2013 20:22:01

Mann, Mann - du hast immer Probleme…

dpkg-scanpackages ist doch nur nen Perlscriptchen. Schau dir in den 1. 34 Zeilen die use-Abhängigkeiten an, drösele die entspr. Perlpakete dahinter auf und schnüre dir ein eigenes Paket. Wenn du doch eh schon ein repository betreibst, wird sich das für dich doch lohnen.

Code: Alles auswählen

use IO::Handle;
use IO::File;
use Getopt::Long qw(:config posix_default bundling no_ignorecase);

use Dpkg;
use Dpkg::Gettext;
use Dpkg::ErrorHandling;
use Dpkg::Control;
use Dpkg::Version;
use Dpkg::Checksums;
use Dpkg::Compression::FileHandle;
use Dpkg::IPC;
Das ist quasi nen Einzeiler:

Code: Alles auswählen

$ sed -n '1,34p' /usr/bin/dpkg-scanpackages > /tmp/dpkg-scanpackages; chmod +x  /tmp/dpkg-scanpackages
$ strace -e open /tmp/dpkg-scanpackages 2>&1 | awk -F\" '/usr\/share\/perl5/{print $2}' | xargs dlocate
libdpkg-perl: /usr/share/perl5/Dpkg/Control.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Gettext.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Compression/FileHandle.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Compression/Process.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Control/Types.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Control/Fields.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Control/Hash.pm
libdpkg-perl: /usr/share/perl5/Dpkg/ErrorHandling.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Compression.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Version.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Vendor.pm
libdpkg-perl: /usr/share/perl5/Dpkg/BuildEnv.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Interface/Storable.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Checksums.pm
libdpkg-perl: /usr/share/perl5/Dpkg/BuildOptions.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Path.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Arch.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Vendor/Debian.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Vendor/Default.pm
libdpkg-perl: /usr/share/perl5/Dpkg/Vendor/Ubuntu.pm
libdpkg-perl: /usr/share/perl5/Dpkg/IPC.pm
libdpkg-perl: /usr/share/perl5/Dpkg.pm
P.S.
pdreker kennen durchaus noch mehr Leute als du ahnst ;-)

guennid

Re: dpkg-scanpackages isolieren

Beitrag von guennid » 08.11.2013 20:32:56

ThorstenS hat geschrieben:pdreker kennen durchaus noch mehr Leute als du ahnst :wink:
Offensichtlich Nr.4 :wink:
Schau dir in den 1. 34 Zeilen die use-Abhängigkeiten an, drösele die entspr. Perlpakete dahinter auf und schnüre dir ein eigenes Paket.
Wenn ich das so aus dem Stand könnte, hätte ich nicht "immer Probleme ..." :wink:

Aber ich geh's durch, vielleicht komm' ich ja weiter.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: dpkg-scanpackages isolieren

Beitrag von syssi » 08.11.2013 21:03:57

Spar dir die Zeit fuers naechste Kernel kompilieren. :-P

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: dpkg-scanpackages isolieren

Beitrag von rendegast » 09.11.2013 07:01:40

Alternative 'apt-ftparchive' aus Debianapt-utils.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

guennid

Re: dpkg-scanpackages isolieren

Beitrag von guennid » 09.11.2013 08:42:30

apt-ftparchive ist mir für meine bescheidenen Zwecke zu professionell und damit umständlich. Ich will kein "öffentliches" Repository kreieren, auf dem ich rendegast mit meinen bescheidenen Paketchen langweile. :wink:

Grüße, Günther

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22443
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: dpkg-scanpackages isolieren

Beitrag von KBDCALLS » 09.11.2013 14:00:54

Was ist denn der Unterschied zwischen apt-ftarchive und dpkg-scan-packages/dpkg-scan-sources? Von dem was tun garkeiner. apt-ftarchive ist nur beides in eins. Von daher kanns garnicht komplizierter sein. Und egal mit welchem Tool man sein lokales repository verwaltet , es zwingt einen ja keiner es öffentlich zu machen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

guennid

Re: dpkg-scanpackages isolieren

Beitrag von guennid » 09.11.2013 15:00:15

Ich hatte mir das hier angetan: http://www.pro-linux.de/artikel/2/1459/ ... chive.html und das hat mich abgeschreckt. Ich weiß, dass du ein Fan von ftparchive bist und es sei dir gegönnt. :wink:

Ich wollte nur wissen, ob man vieleicht mit einem Trick dpkg-scanpackages ohne dpkg-dev bekommen kann. Bezweifle zwar, dass ich ThorstenS folgen kann, aber wenn ich Zeit kriege, mal sehen, und sooo umfangreich ist dpkg-dev ja nun auch wieder nicht, da hat syssi recht.

rendegast hatte das hier mal empfohlen:
als Versuch dpkg-dev herunterladen und mit 'dpkg-deb -x' entpacken.
Das Skript nach zBsp. /usr/local/bin/.
Ob das funktioniert?
Mal schauen, vielleicht probier ich's mal. Lassen wir's gut sein.

Grüße, Günther

guennid

Re: (gelöst) dpkg-scanpackages isolieren

Beitrag von guennid » 09.11.2013 19:11:36

Es funktioniert:

dpkg-scanpackages aus dpkg-dev extrahiert und nach /usr/local/bin verbracht. Dann noch diese beiden libs installiert: libdpkg-perl libtimedate-perl. Ob beide benötigt werden, habe ich nicht geprüft, jedenfalls läuft's damit.

Danke rendegast! und ThorstenS! :THX:

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: (gelöst) dpkg-scanpackages isolieren

Beitrag von ThorstenS » 09.11.2013 19:22:49

wunderbar, freut mich :)

Antworten