Hallo,
wie kann ich herausbekommen, welche Pakete in einer bestimmten Quelle, z.B. PPA, sind. Mein Beispiel aktuell:
https://packagecloud.io/judd/jpilot/ubuntu
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
Hallo, wie kann ich herausbekommen, welche Pakete in einer bestimmten Quelle, z.B. PPA, sind. Mein Beispiel aktuell: https://packagecloud.io/judd/jpilot/ubuntu |
||
Anmeldungsdatum: Beiträge: 16331 |
Einfach nachschauen 🤓 Dein Beispiel macht es einem einfach, für Ubuntu 22.04 finde ich dort diese Pakete: https://packagecloud.io/app/judd/jpilot/search?dist=ubuntu%2Fjammy Wenn du eine andere Antwort erwartet hast, dann solltest du präziser fragen. |
||
Anmeldungsdatum: Beiträge: 11176 Wohnort: München |
Da der Aufbau von Paketquellen standardisiert ist, kann man sich auch direkt die Paketlisten daraus anzeigen lassen - erst schaut man sich https://packagecloud.io/judd/jpilot/ubuntu/dists/jammy/InRelease für eine Übersicht an und dann die Liste mit den interessanten Paketen - also z.B. https://packagecloud.io/judd/jpilot/ubuntu/dists/jammy/main/binary-amd64/Packages |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
Danke für die Tipps! Das sind ja schon mal Möglichkeiten, die vermutlich bei jedem Repo anders aussehen. Deshalb suche ich mehr nach einer Standardmöglichkeit von der Kommandozeile aus. Gibt es da nicht irgendeinen Befehl für? |
||
Anmeldungsdatum: Beiträge: 4378 Wohnort: Göttingen |
Nein, dem ist nicht so, denn wie seahawk schon geschrieben hat:
|
||
Anmeldungsdatum: Beiträge: 11176 Wohnort: München |
Man kann natürlich auch apt fragen, was es so über die Pakete weiß, die es in seinem Cache hat - z.B.:
Aufrufen kann man das dann mit einem Bestandteil der URL, also z.B.: $ ./package_by_uri.py 'seahawk1986-hotmail/jammy-kodi' 'seahawk1986-hotmail/experimental-main' https://ppa.launchpadcontent.net/seahawk1986-hotmail/jammy-kodi/ubuntu kodi 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-addon-dev 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-bin 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-eventclients-common 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-eventclients-dev 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-eventclients-kodi-send 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-eventclients-ps3 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-eventclients-wiiremote 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-ffmpeg-dev 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy kodi-inputstream-adaptive 6:19.0.3-1yavdr0~jammy kodi-inputstream-adaptive-dbg 6:19.0.3-1yavdr0~jammy kodi-inputstream-ffmpegdirect 6:19.0.1-1yavdr0~jammy kodi-inputstream-rtmp 6:19.0.1-1yavdr0~jammy kodi-inputstream-rtmp-dbg 6:19.0.1-1yavdr0~jammy kodi-pvr-vdr-vnsi 1:19.0.0-1yavdr3~jammy kodi-pvr-vdr-vnsi-dbg 1:19.0.0-1yavdr3~jammy kodi-tools-texturepacker 6:19.4+git20220304.1555-e12e66e019-0yavdr0~jammy https://ppa.launchpadcontent.net/seahawk1986-hotmail/experimental-main/ubuntu libmcli (189-0yavdr4~jammy) libmcli-dev (189-0yavdr4~jammy) minisatip (1.1.78-0yavdr1~jammy) yalptool (0.0.2-0yavdr0~jammy) |
||
Anmeldungsdatum: Beiträge: 4378 Wohnort: Göttingen |
Wenn man ein Repo schon eingebunden hat, dann liegen die Listen der Pakete auch unter /var/lib/apt/lists/, dort jeweils in den Dateien mit _Packages am Ende. Dass das Repo schon eingebunden ist, davon war ich bei der Fragestellung aber nicht ausgegangen. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
Oh, sehr schön das Skript, danke! Funktioniert das auch für Pakete, die nicht zur aktuellen Installation passen, also z.B arm oder i368 oder z.B. bionic? Erstaunlich, dass es für so eine doch sicher öfter gewünschte Abfrage noch keinen Befehl gibt. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
Hey cool, ich hatte nur unter /var/cache/ nach sowas gesucht und nichts gefunden. Es werden aber nur die zur aktuellen Installation passenden Pakete dort gelistet, aber immerhin hätte mir das in meinem Fall gereicht.
Oh ja, ich meinte tatsächlich den schon eingebundenen Fall. |
||
Anmeldungsdatum: Beiträge: 16331 |
Mich interessieren doch nicht die Inhalte x-beliebiger Repos (gut, Ubuntu-Quellen interessieren mich grundsätzlich nicht mehr 🤓 ). Was ich lokal eingebunden hatte konnte ich ja mit den gängigen Befehlen abfragen. Bei Fremdquellen wusste ich was ich einbinde. Wäre so eine Abfrage häufiger gewünscht, dann hätte man das längst irgendwo gelesen. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
|||
Anmeldungsdatum: Beiträge: 11176 Wohnort: München |
Wenn die entsprechend in der Liste der Paketquellen eingetragen sind und apt die einlesen kann, sollte das gehen.
Normalerweise löst man das ja eher so, dass man wissen will, welche Versionen man für ein bestimmtes Paket aus den eingebunden Paketquellen bekommen kann - und dafür reicht |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
Stimmt, das müsste gehen. Meine Frage zielte in die Richtung, ob das im Code verwendete apt.Cache() bzw. pkg.uri.partition('/pool/') seine Inhalte – im Hintergrund quasi – direkt aus der fernen Quelle über das Netz bezieht, oder aus den local vorhandenen Daten. Es ist also nach einer Funktion gefragt, die sich des fernen Quelleninhaltverzeichnisses bedient.
Genau, den Anwendungsfall kenne ich auch gut, also die Frage, von welchen Quellen ein bestimmtes Paket angeboten wird. Mich hat halt hier genau die umgekehrte quasi Gegenfrage interessiert. |
||
Anmeldungsdatum: Beiträge: 4378 Wohnort: Göttingen |
So geht das z:b. für ein Repo vom ELK-Stack, das ich noch eingebunden habe: awk '/^Package:/ {print $2}' /var/lib/apt/lists/artifacts.elastic.co_packages_7.x_apt_dists_stable_main_binary-amd64_Packages |uniq |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 3023 Wohnort: Köln |
Jau, klappt: $ awk '/^Package:/ {print $2}' /var/lib/apt/lists/packagecloud.io_judd_jpilot_ubuntu_dists_jammy_main_binary-amd64_Packages |uniq jpilot jpilot-plugins libpisock9 libpisync1 pilot-link Dafür muss man sich allerdings erst den langen Pfad raussuchen. Den automatisch anhand der URL zu finden, würde ich mir von einem Befehl wünschen. Geht auch einfacher mit grep: $ grep "^Package: " /var/lib/apt/lists/packagecloud.io_judd_jpilot_ubuntu_dists_jammy_main_binary-amd64_Packages Package: jpilot Package: jpilot-plugins Package: libpisock9 Package: libpisync1 Package: pilot-link |