Como parar de criar arquivos ._* nos seus pacotes tar no OS X
Se você é desenvolvedor e já passou pela situação de criar um pacote tar
("tarball
") no OS X para depois extrai-lo em outro sistema operacional, pode ter notado que o seu comportamento default é incluir, junto a cada arquivo, outro com o mesmo nome, mas com o prefixo ._
Um exemplo a partir de um teste rápido: criar um tarball de um diretório contendo 2 arquivos:
tar zcvf teste.tar.gz old
a testdir
a testdir/brm-draft-2.html
a testdir/brm-preview-2.html
Note que na criação só são mencionados 2 arquivos, como esperado. Mas se listarmos o conteúdo do tarball criado, note o que aparece a mais:
tar ztvf teste.tar.gz
drwxr-xr-x 0 augusto staff 0 22 Jun 15:15 testdir/
-rw-r--r-- 0 augusto staff 171 22 Jun 15:15 testdir/._brm-draft-2.html
-rw-r--r-- 0 augusto staff 1345 22 Jun 15:15 testdir/brm-draft-2.html
-rw-r--r-- 0 augusto staff 171 22 Jun 15:14 testdir/._brm-preview-2.html
-rw-r--r-- 0 augusto staff 1345 22 Jun 15:14 testdir/brm-preview-2.html
Esses pequenos arquivos adicionais que eu grifei acima incluem no tarball os atributos adicionais de arquivos do OS X, para preservá-los no caso de você vir a descompactar o arquivo em outro Mac.
Mas nem sempre é o que desejamos, e aqueles arquivinhos podem se tornar um incômodo no caso de você estar criando pacotes que poderão ser instalados em outro sistema operacional – como foi recentemente meu caso ao criar o pacote do Axe, meu CMS estático.
Na ocasião, com um pouco de pesquisa, acabei descobrindo como me livrar desse comportamento: basta atribuir, na shell, um valor qualquer à variável de ambiente COPYFILE_DISABLE
.
Assim, se você quiser evitar a criação dos arquivos indesejados, basta usar um comando como export COPYFILE_DISABLE=1
antes de usar o tar
(ou outro comando sujeito a este comportamento) para criar o seu pacote.
E se você nunca quiser preservar atributos extras do OS X, basta incluir o comando acima num arquivo de configuração da sua shell ツ
Comentar
Comentários arquivados