UnZip-6.0

Introduction à UnZip

Le paquet UnZip contient des outils d'extraction ZIP. Ils sont utiles pour extraire des fichiers à partir d'archives ZIP. Les archives ZIP sont créées avec les outils PKZIP ou Info-ZIP, surtout dans un environnement DOS.

[Attention]

Attention

La précédente version du paquet UnZip avait des problèmes liés aux locales. Aucun éditeur de BLFS n'est actuellement capable'de tester ces problèmes de locale. On a donc laissé sur cette page les informations liées aux locales mais elles n'ont pas été testées.' Vous pouvez trouver une approche plus générale de ces problèmes dans la section Program Assumes Encoding de la page Locale Related Issues.

Ce paquet est connu pour se construire et fonctionner correctement sur une plateforme LFS-7.0.

Informations sur le paquet

  • Téléchargement (HTTP) : http://downloads.sourceforge.net/infozip/unzip60.tar.gz

  • Somme de contrôle MD5 du téléchargement : 62b490407489521db863b523a7f86375

  • Taille du téléchargement : 1.3 Mio

  • Estimation de l'espace disque requis : 9 Mio

  • Estimation du temps de construction : Less than 0.1 SBU

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/unzip

Problèmes de locale d'UnZip

[Note]

Note

L'utilisation de UnZip dans l'installation de JDK, Mozilla, DocBook ou tout autre paquet BLFS n'est pas un problème vu que les instructions de BLFS n'tilisent jamais UnZip pour extraire un fichier ayant dans son nom des caractères non ASCII.

Le paquet UnZip suppose que les noms des fichiers stockés dans les archives ZIP créées sur des systèmes non Unix sont encodés en CP850, et qu'ils devraient être convertis en ISO-8859-1 lors de l'écriture des fichiers sur le système de fichiers. De telles suppositions ne sont pas toujours valides. En fait, dans l'archive ZIP, les noms de fichiers sont encodés en codepage du DOS utilisé dans le pays concerné et les noms de fichier sur le disque devraient être dans l'encodage de la locale. Dans MS Windows, la fonction C OemToChar() (de User32.DLL) effectue la bonne conversion (qui est effectivement la conversion de CP850 vers une couche d'ISO-8859-1 si MS Windows est paramétré pour utiliser la langue anglaise américaine), mais il n'y a pas d'équivalent sur Linux.

Lors de l'utilisation de unzip pour déballer une archive ZIP contenant des noms de fichiers non ASCII, les noms de fichiers sont endommagés car unzip utilise une mauvaise conversion quand une de ses suppositions d'encodage n'est pas bonne. Par exemple, dans la locale ru_RU.KOI8-R, la conversion des noms de fichiers de CP866 en KOI8-R est nécessaire, mais la conversion de CP850 en ISO-8859-1 se fait, ce qui donne des noms de fichiers composés de caractères indéchiffrables au lieu de mots (l'exemple équivalent le plus parlant pour des utilisateurs anglophones est rot13). Il y a plusieurs manières de contourner cette limitation :

1) Pour déballer des archives ZIP ayant des noms de fichiers contenant des caract\res non ASCII, utilisez WinZip en lançant l'émulateur Windows Wine.

2) Après avoir exécuté unzip, réparez les dommages sur les noms de fichiers en utilisant l'outil convmv (http://j3e.de/linux/convmv/). Ce qui suit est un exemple pour la locale ru_RU.KOI8-R :

Étape 1. Annulez la conversion effectuée par unzip :

convmv -f iso-8859-1 -t cp850 -r --nosmart --notest \
    </chemin/vers/fichiers/dezippes>

Étape 2. Faites la bonne conversion :

convmv -f cp866 -t koi8-r -r --nosmart --notest \
    </chemin/vers/fichiers/dezippes>

Installation de UnZip

case `uname -m` in
  i?86)
    sed -i -e 's/DASM"/DASM -DNO_LCHMOD"/' unix/Makefile
    make -f unix/Makefile linux
    ;;
  *)
    sed -i -e 's/CFLAGS="-O -Wall/& -DNO_LCHMOD/' unix/Makefile
    make -f unix/Makefile linux_noasm
    ;;
esac

Pour tester les résultats, lancez : make check.

Maintenant, en tant qu'utilisateur root :

make prefix=/usr install

Explication des commandes

sed ... : Cette commande s'assure que ne Soit pas effectué un appel système obsolète.

linux, linux_noasm : La cible linux dans Makefile fait des suppositions qui sont utiles pour un système Linux lors de la compilation d'exécutables, mais elle utilise aussi du code d'assembleur x86 32 bits. La cible linux_noasm se construira sur tous les hôtes Linux. Pour avoir des alternatives à ces cibles, utilisez make list

Contenu

Programmes installés: funzip, unzip, unzipfsx, zipgrep, et zipinfo
Bibliothèques installées: Aucune
Répertoires installés: Aucun

Descriptions courtes

funzip

permet à la sortie des commandes unzip d'être redirigées.

unzip

liste, teste ou extrait des fichiers d'une archive ZIP.

unzipfsx

est un stub auto-extrait qui peut être envoyé vers ZIP archive. Des fichiers dans ce format permettent au destinataire de décompresser l'archive sans installer UnZip.

zipgrep

cherche dans des fichiers d'une archive ZIP des lignes correspondant à un modèle.

zipinfo

produit des informations techniques sur des fichiers d'une archive ZIP, dont les droits d'accès au fichier, le statut du chiffrement, le type de compression, etc.

libunzip.so

contient les fonctions de l'API exigées par les programmes UnZip.

Last updated on 2011-10-23 02:19:32 +0200