Introduksjon til UnZip
UnZip pakken inneholder
ZIP
utpakningsverktøy. Disse er
nyttige for å pakke ut filer fra ZIP
arkiver. ZIP
arkiver opprettes med
PKZIP eller Info-ZIP verktøy, primært i et DOS miljø.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.2 plattform.
Caution
Den forrige versjonen av UnZip
pakken hadde noen lokalitetsproblemene. For øyeblikket er det
ingen BLFS redaktører som er i stand til å teste disse
lokalitetsproblemene. derfor lokalitetsrelatert informasjon er
igjen på denne siden, men har ikke vært blitt testet. En mer
generell diskusjon om disse problemene finnes i
Program Forutsetter Koding delen av Lokale Relaterte Problemer
siden.
Pakkeinformasjon
Ytterligere Nedlastinger
UnZip
Lokalitetsproblemer
Note
Bruk av UnZip i JDK, Mozilla, DocBook eller en hvilken som helst annen
BLFS pakkeinstallasjon er ikke et problem, siden BLFS
instruksjoner aldri bruker UnZip
for å pakke ut en fil med ikke-ASCII tegn i filnavnet.
Disse problemene antas å være løst i oppdateringen. Men siden ingen
av redaktørene har data for å teste dette, er følgende løsninger
beholdt i tilfelle de fortsatt kan være nødvendige.
UnZip pakken antar at filnavn
lagret i ZIP arkivene som er opprettet på ikke-Unix-systemer, er
kodet i CP850, og at de skal konverteres til ISO-8859-1 ved
skriving av filer til filsystemet. Slike forutsetninger er ikke
alltid gyldige. Faktisk, inne i ZIP arkivet er filnavn kodet i DOS
kodesiden som er i bruk i det aktuelle landet, og filnavnene på
disken skal være i lokalitetskodingen. I MS Windows, OemToChar()
C-funksjonen (fra User32.DLL
) gjør
den riktige konverteringen (som er faktisk konverteringen fra CP850
til et supersett av ISO-8859-1 hvis MS Windows er satt opp til å
bruke amerikansk engelsk språk), men det er ingen tilsvarende i
Linux.
Når det brukes unzip
for å pakke ut et ZIP arkiv som inneholder ikke-ASCII filnavn, er
filnavnene skadet fordi unzip bruker feil konvertering
når noen av disse kodingsforutsetninger er feil. For eksempel i
ru_RU.KOI8-R locale, kreves konvertering av filnavn fra CP866 til
KOI8-R, men konvertering fra CP850 til ISO-8859-1 er utført, noe
som produserer filnavn som består av utydelige tegn i stedet for
ord (den nærmeste tilsvarende forståelig eksempel for brukere som
bare bruker engelsk er rot13). Det er flere måter rundt denne
begrensningen:
1) For utpakking av ZIP arkiver med filnavn som inneholder
ikke-ASCII tegn, bruk WinZip mens det kjøres Wine Windows emulator.
2) Bruk bsdtar -xf
fra libarchive-3.7.4 to unpack the ZIP archive.
Deretter fiks skaden på filnavnene ved hjelp av convmv verktøyet (https://j3e.de/linux/convmv/).
Følgende er et eksempel for lokaliteten zh_CN.UTF-8:
convmv -f cp936 -t utf-8 -r --nosmart --notest \
</path/to/unzipped/files>
Installasjon av UnZip
Først anvend oppdateringene:
patch -Np1 -i ../unzip-6.0-consolidated_fixes-1.patch
patch -Np1 -i ../unzip-6.0-gcc14-1.patch
Nå kompiler pakken:
make -f unix/Makefile generic
Testpakken fungerer ikke for målet generic
.
Nå, som root
bruker:
make prefix=/usr MANDIR=/usr/share/man/man1 \
-f unix/Makefile install
Parameterforklaringer
make -f unix/Makefile
generic: Dette målet begynner med å kjøre et
konfigureringsskript (i motsetning til eldre mål som linux og
linux_noasm) som lager en flaggfil som deretter brukes i bygget.
Dette sikrer at 32-bit x86 bygget mottar de riktige flaggene for å
pakke ut filer som er større enn 2 GB når den pakkes ut.