Weiß jemand, wie man die Versionsnummer einer .pkg-Datei abruft, die noch nicht installiert ist?
Ich würde gerne so etwas wie pkgutil --pkg-info verwenden , aber das funktioniert nur für installierte Pakete.
Ich habe auch installer -pkginfo -verbose versucht , aber das zeigt nicht die Versionsnummer.
Gibt es dafür einen eingebauten Befehl, oder könnte alternativ jemand bitte einen Einzeiler vorschlagen?
Danke.
Das Beste was mir einfiel war folgendes:
pkgutil --expand package.pkg /tmp/pkg; cat /tmp/pkg/PackageInfo | grep ./Applications | grep -m 1 .app\" | awk '{ print $3, $2 }'; rm -rf /tmp/pkg
Nicht die eleganteste Lösung, daher suche ich immer noch nach einer Möglichkeit, dies zu tun, ohne zuerst die .pkg-Datei extrahieren zu müssen.
Variante der Antwort von @d3Xt3r:
tar xOvf PackageName.pkg output.pkg/PackageInfo 2>/dev/null | grep '<pkg-info' \
| sed "s#.* version=\"\([0-9\.]*\)\".*#\1#"
Vorteil ist, dass dies nur eine Rohrbearbeitung ist.
Beachten Sie, dass mein Paket eine andere Struktur hatte, es gibt ein zusätzliches Verzeichnis, output.pkg
das die Datei enthältPackageInfo
für ein Paket, das wie folgt aufgebaut ist,
PackageName.pkg
└── Package.pkg
└── PackageInfo
adaptiert von @Marek R
Der Befehl zum Extrahieren von Versionsinformationen inline lautet:
tar xOvf "PackageName.pkg" "Package.pkg/PackageInfo" 2>/dev/null | fgrep "<pkg-info" | grep -Po '(?<!-)version="[^"]+"'
Ahmed