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ø.
Notat
Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen
pakker riktig hvis LFS eller avhengigheter har blitt oppdatert
siden den siste stabile versjonene av bøkene.
Obs
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
Notat
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.7 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.