UnZip-6.0

Introdução ao "UnZip"

O pacote UnZip contém utilitários de extração ZIP. Eles são úteis para extrair arquivos a partir de arquivamentos ZIP. Os arquivamentos ZIP são criados com os utilitários PKZIP ou Info-ZIP, principalmente em um ambiente "DOS".

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

[Cuidado]

Cuidado

A versão anterior do pacote UnZip tinha alguns problemas relacionados à localidade. Atualmente não existem editores(as) do BLFS capazes de testar esses problemas de localidade. Portanto, as informações relacionadas à localidade são deixadas nesta página, mas não foram testadas. Uma discussão mais geral desses problemas pode ser encontrada na seção O Aplicativo Assume a Codificação da página Problemas Relacionados à Localidade.

Informação do Pacote

Transferências Adicionais

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/unzip

Problemas de Localidade do "UnZip"

[Nota]

Nota

O uso de UnZip no JDK, Mozilla, DocBook ou qualquer outra instalação de pacote do BLFS não é um problema, pois as instruções do BLFS nunca usam UnZip para extrair um arquivo com caracteres não "ASCII" no nome do arquivo.

Esses problemas são presumidos terem sido corrigidos no remendo. Mas, como nenhum(a) dos(a) editores(a) tem dados para testar isso, as seguintes soluções alternativas são mantidas caso ainda sejam necessárias.

O pacote UnZip assume que os nomes de arquivos armazenados nos arquivamentos "ZIP" criados em sistemas não Unix estejam codificados em "CP850" e que deveriam ser convertidos para "ISO-8859-1" ao escrever arquivos no sistema de arquivos. Tais suposições nem sempre são válidas. Na verdade, dentro do arquivamento "ZIP", os nomes dos arquivos são codificados na página de códigos do "DOS" que estiver em uso no país relevante, e os nomes dos arquivos no disco deveriam estar na codificação da localidade. No "MS Windows", a função C "OemToChar()" (originária de User32.DLL) faz a conversão correta (que é, de fato, a conversão de "CP850" para um superconjunto de "ISO-8859-1", se o "MS Windows" estiver configurado para usar o idioma inglês dos Estados Unidos da América do Norte), mas não existe equivalente no Linux.

Ao usar unzip para desempacotar um arquivamento "ZIP" contendo nomes de arquivos não "ASCII", os nomes dos arquivos são danificados porque unzip usa conversão inadequada quando qualquer uma das suposições dele de codificação estiver incorreta. Por exemplo, na localidade "ru_RU.KOI8-R", a conversão de nomes de arquivos de "CP866" para "KOI8-R" é necessária, mas a conversão de "CP850" para "ISO-8859-1" é feita, o que produz nomes de arquivos que consistem em caracteres indecifráveis em vez de palavras (o mais próximo exemplo compreensível equivalente para usuários(as) somente em inglês é "rot13"). Existem várias maneiras de contornar essa limitação:

1) Para descompactar arquivamentos "ZIP" com nomes de arquivos contendo caracteres não "ASCII", use WinZip enquanto executa o emulador de "Windows" Wine.

2) Use bsdtar -xf oriundo de libarchive-3.6.2 para descompactar o arquivamento "ZIP". Em seguida, corrija os danos causados aos nomes dos arquivos usando a ferramenta convmv (https://j3e.de/linux/convmv/). A seguir está um exemplo para a localidade "zh_CN.UTF-8":

convmv -f cp936 -t utf-8 -r --nosmart --notest \
    </caminho/para/arquivos/descomprimidos>

Instalação do "UnZip"

Primeiro aplique o remendo:

patch -Np1 -i ../unzip-6.0-consolidated_fixes-1.patch

Agora compile o pacote:

make -f unix/Makefile generic

A suíte de teste não funciona para o alvo generic.

Agora, como o(a) usuário(a) root:

make prefix=/usr MANDIR=/usr/share/man/man1 \
-f unix/Makefile install

Explicações do Comando

make -f unix/Makefile generic: Esse alvo começa executando um script de configuração (ao contrário dos alvos mais antigos, como "linux" e "linux_noasm") que cria um arquivo de sinalizadores que é então usado na construção. Isso garante que a construção "x86" de 32 bits receba os sinalizadores corretos para descompactar arquivos os quais sejam maiores que 2 GB quando extraídos.

Conteúdo

Aplicativos Instalados: funzip, unzip, unzipfsx, zipgrep e zipinfo
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: Nenhum(a)

Descrições Curtas

funzip

permite que a saída gerada dos comandos unzip seja redirecionada

unzip

lista, testa ou extrai arquivos a partir de um arquivamento ZIP

unzipfsx

é um toco auto-extraível que pode ser preposto a um arquivamento ZIP. Arquivos nesse formato permitem ao destinatário descomprimir o arquivamento sem instalar o UnZip

zipgrep

pesquisa arquivos em um arquivamento ZIP em busca de linhas que correspondam a um padrão

zipinfo

produz informações técnicas relativas aos arquivos em um arquivamento ZIP, incluindo permissões de acesso a arquivos, situação de encriptação, tipo de compressão, etc