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.
Ce paquet est connu pour pouvoir être construit et fonctionner
correctement avec une plateform 12.2.
Attention
La version précédente du paquet UnZip avait des problèmes liés aux
paramètres régionaux. Aucun éditeur de BLFS n'est actuellement
capable de tester ces problèmes. On a donc laissé sur cette page
les informations liées aux paramètres régionaux mais elles n'ont
pas été testées. Vous pouvez trouver une approche plus générale
de ces problèmes dans la section
Le programme présuppose un encodage particulier de la page
Problèmes liés aux locales.
Informations sur le paquet
-
Téléchargement (HTTP) : https://downloads.sourceforge.net/infozip/unzip60.tar.gz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
62b490407489521db863b523a7f86375
-
Taille du téléchargement : 1,3 Mo
-
Estimation de l'espace disque requis : 9 Mo
-
Estimation du temps de construction : moins de
0,1 SBU
Téléchargements supplémentaires
Problèmes de locale d'UnZip
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'utilisent jamais
UnZip pour extraire un fichier
ayant dans son nom des caractères non-ASCII.
Ces problèmes devraient être corrigés dans le correctif. Mais comme
aucun éditeur n'a de données pour le tester, les contournements
suivants sont gardés au cas où ils seraient nécessaires.
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 exécutant l'émulateur
Windows Wine.
2) Utilisez bsdtar
-xf de libarchive-3.7.4 pour extraire
l'archive ZIP. Ensuite, réparez les dommages sur les noms de
fichiers en utilisant l'outil convmv (https://j3e.de/linux/convmv/).
Ce qui suit est un exemple pour le paramètre régional
ru_RU.KOI8-R :
convmv -f cp936 -t utf-8 -r --nosmart --notest \
</path/to/unzipped/files>
Installation de UnZip
Tout d'abord, appliquez les correctifs :
patch -Np1 -i ../unzip-6.0-consolidated_fixes-1.patch
patch -Np1 -i ../unzip-6.0-gcc14-1.patch
Maintenant compilez le paquet :
make -f unix/Makefile generic
La suite de tests ne fonctionne pas avec la cible generic
.
Maintenant, en tant qu'utilisateur root
:
make prefix=/usr MANDIR=/usr/share/man/man1 \
-f unix/Makefile install
Explication des commandes
make -f unix/Makefile
generic : Cette cible commence par lancer un
script de configuration (pas comme les anciennes cibles comme linux
et linux_noasm) qui crée un fichier de drapeaux qui est ensuite
utilisé dans la construction. Cela permet que les constructions x86
32 bits reçoivent les bons drapeaux pour dézipper les fichiers qui
sont plus gros que 2 Go une fois extrait.