Montar um arquivo tar - não é possível?

7

Parece que não é possível montar um arquivo tar (somente leitura), da mesma forma que se monta um arquivo de imagem ISO. Pelo menos, não encontrei nenhuma implementação.

Seria útil, por exemplo, executar um comando localizar dentro dele.

Isso é realmente (ou praticamente) impossível de implementar? Por quê?

UPDATE Por meio de respostas aceitas, isso é realmente possível, embora um programa (não incluído nas distribuições atuais) deva ser instalado. Isso funcionou para mim. Eu copio a instalação e passo no meu cenário (Fedora 12).

  # yum install fuse fuse-libs fuse-devel 
  # yum install libarchive libarchive-devel
  # cd /tmp && wget http://www.cybernoia.de/software/archivemount/archivemount-0.6.0.tar.gz
  # tar xzf archivemount-0.6.0.tar.gz && cd archivemount-0.6.0
  # ./configure && make && make install
  # man archivemount
  #  archivemount -o ro /tmp/mytar.tgz /mnt/tt
    
por leonbloy 04.05.2010 / 16:36

2 respostas

8

Tradicionalmente, não, não é possível.

No entanto, você pode fazer isso usando o archivemount do sistema de arquivos FUSE no Linux.

IMNSHO isso é um pouco de novidade e geralmente não é necessário, mas eu posso ver alguns casos extremos para isso.

    
por 04.05.2010 / 16:39
1

O pacote está disponível no Ubuntu 11.10, infelizmente quebrado.

É possível instalá-lo por meio de esta solução alternativa :

mkdir -p ~/src
cd ~/src

sudo aptitude install build-essential devscripts debian-archive-keyring libfuse-dev libarchive-dev
apt-get source archivemount
gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg --verify *dsc

cd archivemount-0.6.1
cat << EOF | patch -p0
--- debian/control
+++ debian/control
@@ -8,7 +8,7 @@

 Package: archivemount
 Architecture: linux-any
-Depends: \${shlibs:Depends}, \${misc:Depends}, fuse (>=2.8.5-2)
+Depends: \${shlibs:Depends}, \${misc:Depends}, fuse-utils (>=2.8.4-1.4ubuntu1)
 Description: mounts an archive for access as a file system
  archivemount is a FUSE based file system for Unix variants, including Linux.
  Its purpose is to mount archives to a mount point where it can be read from
EOF
dch --nmu 'Depend on fuse-utils instead of fuse on Oneiric Ocelot.'
dpkg-buildpackage

cd ..
sudo dpkg -i archivemount_0.6.1-2.1_amd64.deb

O último passo não funcionou para mim, então eu

cd archivemount-0.6.1./
configure && make && sudo make install

em vez disso.

    
por 20.09.2012 / 12:27

Tags