Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Linux bzw. Non-MS & Programme (https://www.tweakpc.de/forum/linux-bzw-non-ms-and-programme/)
-   -   OSX: Versionsinformationen aus Installationsdatei (.pkg) auslesen (https://www.tweakpc.de/forum/linux-bzw-non-ms-and-programme/73565-osx-versionsinformationen-aus-installationsdatei-pkg-auslesen.html)

Fabian 18.11.2009 06:31

OSX: Versionsinformationen aus Installationsdatei (.pkg) auslesen
 
Hi,

hat jemand Erfahrung mit Installationsdateien von OSX. Ich möchte die Versionsinformationen aus dem Paket gerne auslesen, per Shell-Skript oder AppleScript. Auf diese Weise könnte ich eine automatisierte Installation schreiben, die überprüft ob die entsprechende Version bereits installiert ist.

An die Version des installierten Paketes kommt man über [CODE]pkgutil --pkg-info com.growl.growl.pkg[/CODE]. Etwas ähnliches muss doch auch mit einem noch nicht installierten Paket funktionieren.

Wenn ich in die Installationsdatei hineinschaue, dann finde ich die entsprechenden Einträge in der "PackageInfo", dort wird der identifier und die version definiert, aber dazu müsste ich die Pakete immer erst auspacken, also nicht ganz so schön.

Danke ...

[EID]-Mr.GiZMO 18.11.2009 09:58

AW: OSX: Versionsinformationen aus Installationsdatei (.pkg) auslesen
 
Wirst wohl nicht um's Entpacken drumrum kommen, aber das kannst du ja auch automatisch in einen temporären Ordner tun und nach der Prüfung / Installation wieder löschen.

Fabian 20.11.2009 06:50

AW: OSX: Versionsinformationen aus Installationsdatei (.pkg) auslesen
 
Hmm ... ok das habe ich nicht geschafft. Ich muss also jetzt die Abfrage in das Shell-Skript reinnehmen, aber dafür funktioniert mein Skript jetzt.

Mit nur einem Shell-Aufruf kann ich jetzt die Pakete installieren, die ich auf allen Rechnern installiert haben möchte. Bei nochmaligem Aufruf werden nur die Updates installiert.

Wenn es jemanden interessiert:

[code]#!/bin/bash

# install packages
# get version with pkgutil --pkg-info com.growl.growl.pkg

echo "=== installing packages ==="

install_pkg() {
string=`pkgutil --pkg-info "$1"`
string=${string#*'version: '*}
string=${string%*'volume:'*}
string=`echo "$string" | tr -cd "[:print:]"`

[ $string ] || string="XXX"
if [ "$string" != "$2" ]; then
echo "Install $1 ($3)? (y/n)"
read -s -n 1
[ "$REPLY" = "y" ] && sudo installer -pkg $3 -target LocalSystem
fi
}

install_pkg "com.growl.growl.pkg" "1.2" "Growl.pkg"
install_pkg "com.Logitech.Control Center.pkg" "3.0.0" "LogitechControlCenter.mpkg"
install_pkg "com.google.macfuse" "2.0" "MacFUSE.pkg"
install_pkg "org.catacombae.ntfs-3g_package" "2009.4.4" "MacFUSE_NTFS3G.mpkg"
install_pkg "net.culater.simbl.SIMBL.pkg" "9" "SIMBL.pkg"
install_pkg "com.sweetpproductions.SafariCookies.pkg" "1.3" "Safari_Cookies.pkg"
install_pkg "org.TrueCryptFoundation.TrueCrypt" "6.3" "TrueCrypt.mpkg"
install_pkg "tuntap.tap" "1" "tuntap.pkg"

echo "=== installing files to /Library ==="
sudo rsync -rulv Library /

echo "=== package installation complete ==="[/code]


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.