Auflisten welche Pakete aus Sourcepaket gebaut werden
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Auflisten welche Pakete aus Sourcepaket gebaut werden
Hallo,
ich überwache das Debianarchive auf Quellpakete (apt-cache dumpavail | ... ), und erhalte eine Liste der neu hinzugekommenen Quellpakete.
GIbt es nun eine Möglichkeit abzufragen, welche Pakete daraus gebaut werden? Manchmal will ich das gerne wissen.
ich überwache das Debianarchive auf Quellpakete (apt-cache dumpavail | ... ), und erhalte eine Liste der neu hinzugekommenen Quellpakete.
GIbt es nun eine Möglichkeit abzufragen, welche Pakete daraus gebaut werden? Manchmal will ich das gerne wissen.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
Mag einen Befehl geben. Ich kenn nur Internetadressen z.B. https://packages.debian.org/source/bullseye/coreutils für coreutils.
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
Das ist eine Möglichkeit.
Wenn man dies aber lokal in der Shell machen möchte, bleibt nur die Iteration über alle Pakete und dann prüfen, welche als Quelle das Sourcepaket haben?
Wenn man dies aber lokal in der Shell machen möchte, bleibt nur die Iteration über alle Pakete und dann prüfen, welche als Quelle das Sourcepaket haben?
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
apt-cache showsrc SRCPKG zeigt dir unter Package-List:, welche Binärpakete aus einem Quellpaket gebaut werden:
Dass dieselben Pakete nochmal in kurzer Form unter Binary: gelistet sind, hab ich gerade jetzt erst beim Schreiben entdeckt Die Binary-Zeile lässt sich natürlich leicht mit einem grep, awk oder sonstwas herausfiltern.
Falls du doch mal was anderes benutzen möchtest, hatte ich gerade was mit Perl zusammengebastelt (bevor ich Binary: gesehen hab). Braucht libapt-pkg-perl:
Wenn ein Paket in mehreren verschiedenen Versionen verfügbar ist (z.B. firefox-esr in stable und stable-security), geben sowohl apt-cache showsrc als auch das Perl-Skript die resultierenden Binärpakete für alle Versionen aus.
Code: Alles auswählen
$ apt-cache showsrc fish
Package: fish
Binary: fish, fish-common
Version: 3.6.0-3.1
[…]
Package-List:
fish deb shells optional arch=any
fish-common deb shells optional arch=all
[…]
Falls du doch mal was anderes benutzen möchtest, hatte ich gerade was mit Perl zusammengebastelt (bevor ich Binary: gesehen hab). Braucht libapt-pkg-perl:
Code: Alles auswählen
#!/usr/bin/perl
use strict;
use warnings;
use AptPkg::Source;
my $apt_srcs = AptPkg::Source->new();
foreach ( $apt_srcs->get( $ARGV[0], 1 ) ) {
print $_->{Version}, ": ", join( " ", $_->{Binaries}->@* ), "\n";
}
Code: Alles auswählen
$ ./bin-pkgs-from-src fish
3.6.0-3.1: fish fish-common
Wenn ein Paket in mehreren verschiedenen Versionen verfügbar ist (z.B. firefox-esr in stable und stable-security), geben sowohl apt-cache showsrc als auch das Perl-Skript die resultierenden Binärpakete für alle Versionen aus.
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
Cool, danke.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
Hallo @JTH, hallo @all,
kann mit der libapt-pkg-perl/AptPkg auch eine Liste aller Quellpakete im Cache abgefragt werden, ich finde da den Anfang nicht? Dann könnte ich mein doch sehr langsames Shellscript (s. NoPaste) in Perl neu-schreiben.
Den ersten Teil mit den Binärpaketen und der Paketbeschreibung (s.o.) habe ich ja schon von dir erklärt bekommen.
NP: 42014 (PS: Dateien werden als gegeben angenommen)
LG,
Inne
// Wobei eine Liste der Binärpakete genauer wäre, aber auch länger.
kann mit der libapt-pkg-perl/AptPkg auch eine Liste aller Quellpakete im Cache abgefragt werden, ich finde da den Anfang nicht? Dann könnte ich mein doch sehr langsames Shellscript (s. NoPaste) in Perl neu-schreiben.
Den ersten Teil mit den Binärpaketen und der Paketbeschreibung (s.o.) habe ich ja schon von dir erklärt bekommen.
NP: 42014 (PS: Dateien werden als gegeben angenommen)
LG,
Inne
// Wobei eine Liste der Binärpakete genauer wäre, aber auch länger.
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
Stand da heut morgen nicht noch ein anderer Name, TRex oder so?
Alle bekannten Source- mit dazugehörigen Binärpaketen auflisten ginge sogar noch kürzer:
Code: Alles auswählen
awk -F: '$1=="Package" { printf "%s:", substr($2, 2) } $1=="Binary" { print $2 }' /var/lib/apt/lists/*Sources | sort
Das oben ist nur eine erste, triviale Lösung. Manche Sourcepakete kommen in der Auflistung doppelt vor (in verschiedenen Versionen, „linux“ z.B.). Und die zugeordneten Binärpakete sind in ihrer Zeile nicht sortiert, sondern beliebig angeordnet, nämlich so wie sie ein Mensch irgendwo eingetragen hat. Eine einheitliche, „maschinelle“ Sortierung wär da aber evtl. sinnvoll, wenn du Änderungen der Listen erkennen willst, die nicht nur die Folge von menschlicher Beliebigkeit sind.
Ob es sinnvoll ist, die mehrfach auftretenden Sourcepakete zu einem Eintrag zusammenzufügen oder andersrum zur Unterscheidung noch die Quellversion hinter den Quellnamen zu hängen, müsstest du für deine Anwendung entscheiden.
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 3290
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
Ja, ich hatte mich vertan.
Warum ich TRex getippt hatte weiss ich nicht... Aber ich vergesse z.B. manchmal auch Wörter im Satz zu scheiben, das ist damals schon meinem Berufsschulleher aufgefallen.
--
Also scheint es nicht zu gehen.
Kann man denn an diesem Shell-Script noch was verbessern (bestimmt)?
Ich habe es nun nur geändert das es Binärpakete nimmt - das scheint mir doch besser als Sourcepakete. Das lässt sich ja schnell ändern (ist jetzt nun ungetestet).
Code: Alles auswählen
#!/usr/bin/env bash
# Den APT-Cache über Versionen hinweg verfolgen
set -e
show_desc () {
while read REPLY; do
echo -n "$REPLY - "; apt-cache show "$REPLY" | sed -n -E "/^Description.*: /{s///;p}" | head -1
done
}
temp="`mktemp`"
apt-cache dumpavail | sed -n -E '/^Package: /{s///;p}' | sort -u >"$temp"
comm -2 -3 "$temp" "old" | tee "diff" | show_desc
mv "$temp" "old"
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Auflisten welche Pakete aus Sourcepaket gebaut werden
(Fast) alles geht auf irgendeinem Weg
Mit den Binärpaketen könnte das hier leichter sein, ja. An die kommt man bei den verschiedenen Möglichkeiten zum Auflisten meist leichter ran.inne hat geschrieben:12.11.2023 13:06:18Kann man denn an diesem Shell-Script noch was verbessern (bestimmt)?
Ich habe es nun nur geändert das es Binärpakete nimmt - das scheint mir doch besser als Sourcepakete.
Aber die Frage wär erstmal nochmal: Was genau möchtest du denn erreichen? Bemerken, wenn ein Source- und/oder Binärpaket einfach nur dazugekommen ist? Oder zusätzlich auch erkennen, wenn sich eine Version geändert hat? (Ich frag nur, weil es manchmal bei der Auswahl der besten Lösung hilft, das Ziel nochmal klar zu beschreiben )
Da kann ich dir nicht weiterhelfen. Ich vermute mal, dass es z.B. eine Mailingliste gäbe, die für dich hier interessant sein könnte?inne hat geschrieben:12.11.2023 13:06:18Was anderes fertiges gibt es im Debian-Archive wohl nicht, dann würde ich das nutzen? Da mach ich mal demnächst ein neues Thema für auf, wie andere das machen und sich da auf dem laufenden halten.
Manchmal bekannt als Just (another) Terminal Hacker.