¿Alguien sabe cómo recuperar el número de versión de un archivo .pkg que aún no está instalado?
Me gustaría usar algo como pkgutil --pkg-info , pero eso solo funciona para paquetes instalados.
También probé installer -pkginfo -verbose , pero eso no muestra el número de versión.
¿Hay un comando incorporado para hacer esto o, alternativamente, alguien podría sugerir una sola línea, por favor?
Gracias.
Lo mejor que se me ocurrió fue esto:
pkgutil --expand package.pkg /tmp/pkg; cat /tmp/pkg/PackageInfo | grep ./Applications | grep -m 1 .app\" | awk '{ print $3, $2 }'; rm -rf /tmp/pkg
No es la solución más elegante, así que todavía estoy buscando una forma de hacerlo sin tener que extraer primero el .pkg.
Variación de la respuesta de @d3Xt3r:
tar xOvf PackageName.pkg output.pkg/PackageInfo 2>/dev/null | grep '<pkg-info' \
| sed "s#.* version=\"\([0-9\.]*\)\".*#\1#"
La ventaja es que esto es solo procesamiento de tuberías.
Tenga en cuenta que mi paquete tenía una estructura diferente, hay un directorio adicional output.pkg
que contiene un archivoPackageInfo
para un paquete estructurado como se muestra a continuación,
PackageName.pkg
└── Package.pkg
└── PackageInfo
adaptado de @Marek R
el comando para extraer información de la versión en línea es:
tar xOvf "PackageName.pkg" "Package.pkg/PackageInfo" 2>/dev/null | fgrep "<pkg-info" | grep -Po '(?<!-)version="[^"]+"'
ahmed