web-dev-qa-db-fra.com

Extraire les fichiers .xip dans un dossier spécifique

Un fichierXIPest analogue à Zip, mais permet d'appliquer et de vérifier une signature numérique sur le système destinataire avant que l'archive ne soit étendue. Quand un fichierXIPest ouvert (en double-cliquant), Archive Utility le développe automatiquement (mais uniquement si la signature numérique est intacte).

Essentiellement, un fichier .xip est simplement un fichier .Zip avec une signature pour vérifier que le fichier n'a pas changé depuis que son créateur l'a enregistré. Cela protège à la fois des dommages causés par une erreur de disque et par une tierce partie altérant le fichier.

Est-ce que quelqu'un sait comment extraire ce fichier, par exemple Utilisation de Terminal , dans un dossier spécifique au lieu du dossier contenant le fichier .xip?

7
Antony Raphel

Peut-être essayer:

xip -x [path to .xip file]

Cela décompactera l'archive dans votre répertoire de travail actuel.

Quant à l'extraction dans un répertoire spécifique, il n'y a pas explicitement d'option, mais xip -x va extraire dans le répertoire de travail en cours. Par conséquent, cding à l'endroit où vous souhaitez extraire le fichier doit fonctionner; si vous avez spécifiquement besoin d'automatiser cela, un script à l'effet de:

#!/bin/sh

xipfile="$(cd $(dirname "$1"); pwd -P)/$(basename "$1")" # a portable "realpath"

cd "$2"
xip -x "$xipfile"

Devrait faire le truc, je pense?

10
Geoff Nixon

Je recommanderais simplement d'extraire l'archive dans le dossier dans lequel vous voulez essayer:

xar -xf file.xip -C /path/to/target

(et/ou)

tar -zxvf file.xip -C /path/to/target

Les commandes xar et tar extraient le .xip "Contenu" et "Métadonnées" au format brut. 

À l'aide d'un analyseur de flux pbzx, vous devez extraire le "contenu", qui est une charge utile compressée au format lzma; le format est similaire à celui trouvé dans un programme d'installation de paquet (par exemple, .pkg). Vous pouvez compiler la source pbzx à partir d’ici ou télécharger le fichier binaire compilé et l’installer dans /usr/local/bin puis appeler la commande pbzx

pbzx -n Content | cpio -i

Une fois que la commande a fini d'analyser le contenu, vous devez obtenir le format d'origine de l'archive .xip.

Utile/Informations complémentaires:

$ pkgutil --check-signature file.xip 

(Xcode_9_beta_2.xip} _ renvoie:

Package "Xcode_9_beta_2.xip":
   Status: signed Apple Software
   Certificate Chain:
    1. Software Update
       SHA1 fingerprint: 1E 34 E3 91 C6 44 37 DD 24 BE 57 B1 66 7B 2F DA 09 76 E1 FD
       -----------------------------------------------------------------------------
    2. Apple Software Update Certification Authority
       SHA1 fingerprint: FA 02 79 0F CE 9D 93 00 89 C8 C2 51 0B BC 50 B4 85 8E 6F BF
       -----------------------------------------------------------------------------
    3. Apple Root CA
       SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60

Remarques:

Important: à partir de macOS Sierra, seules les archives XIP signées par Apple sera élargi. Développeurs ayant utilisé des archives XIP devront passer à l’utilisation de packages d’installation signés ou d’images disque.

Page de manuel OS X: xip

4
l'L'l

Vous pouvez ouvrir archive utility lui-même, accéder à Préférences et définir un dossier destination spécifique puis double-cliquer sur le fichier. De cette façon, vous avez réussi à l'élargir à une destination spécifique. ;-)

3
Hug

Il semble n'y avoir aucun outil unique pour accomplir cela, jusqu'à présent. Il faut un outil capable de décoder les flux pbzx, et il ne semble exister aucun outil pour cela pré-installé sur macOS.

Diverses solutions se trouvent dans ces réponses:

0
Thomas Tempelmann