O tar é desinstalado, como é possível reinstalá-lo?

4

Eu estava fazendo algumas coisas no meu PC Ubuntu, quando fiz

sudo apt-get autoremove tar

e bagunçou meu computador. Eu aparentemente queria reinstalar o tar, mas removi-o pensando que iria instalá-lo depois que ele fosse removido. Isso foi um erro e eu me arrependo de fazê-lo.

Agora, mal consigo fazer nada com o tar não instalado no meu computador. Não consigo instalar nenhum pacote usando apt-get , nem posso instalar pacotes usando dpkg . Eu tentei baixar um arquivo .deb do tar e instalá-lo no meu computador usando dpkg , mas como eu disse eu não poderia fazer isso também.

Não consigo instalar o tar usando apt-get , então não consegui descobrir como instalar o tar no meu computador novamente.

Eu tentei pesquisar em sites como o AU, mas não consegui encontrar uma solução para isso.

Como você pode instalar o tar sem ter o tar instalado em seu computador? (soluções com o apt-get, dpkg etc não funcionam) Estou no Ubuntu 14.04 LTS.

    
por Ashish Ahuja 10.01.2017 / 17:09

2 respostas

2

Eu resolvi o problema com algumas soluções alternativas, mas funciona. Pode não ser a melhor maneira de resolver o problema. Eu obtive a resposta seguindo algumas partes de @ comment do steeldriver e adicionando alguns dos meus.

Primeiro você precisa baixar o arquivo .deb para tar .

Vá para você pasta Downloads, usando o comando

cd ~/Downloads/

e depois fazendo

ls | grep tar

para garantir que o download seja bem-sucedido. Você deve obter uma saída semelhante a

tar_1.27.1-1ubuntu0.1_i386.deb

Se não, tente baixar novamente.

Eu vou usar o nome mytar.deb para a resposta, mas substitua isso pelo nome real do seu arquivo .deb

Agora, você precisa extrair o conteúdo do arquivo .deb sem usando o tar.

Primeiro faça

ar x mytar.deb

que extrairá os arquivos do arquivo o diretório atual. Para listar os arquivos presentes, faça

ar t mytar.deb

que produzirá algo semelhante a

debian-binary
control.tar.gz
data.tar.xz

data.tar.xz contém os arquivos reais que precisamos copiar. Não podemos usar tar para extraí-los porque nosso computador atual não possui o comando tar.

Primeiro, permite converter data.tar.xz para data.tar . Para fazer isso, faça

xz -dc < data.tar.xz > data.tar

que deve criar um novo arquivo data.tar .

Agora, precisamos criar um link para o busybox, como mencionado por @steeldriver nos comentários. Então faça

sudo ln -s /bin/busybox /usr/local/bin/tar

para criar um link simbólico.

Então, basicamente, você está usando o busybox em vez de tar. Então, se você usar o comando tar, ele invocará o busybox. Agora faça

mkdir temp

para criar um diretório fictício. Então

tar -xf data.tar -C temp/

para extrair o arquivo .tar e despejar seu conteúdo no diretório temp . Altere o diretório de trabalho para temp usando

cd temp

Então,

ls -pal

para obter uma saída como

total 28
drwxrwxr-x  5 ashish ashish  4096 Jan 11 08:41 ./
drwxr-xr-x 23 ashish ashish 12288 Jan 11 08:41 ../
drwxr-xr-x  2 ashish ashish  4096 Jan 11 08:41 bin/
drwxr-xr-x  2 ashish ashish  4096 Jan 11 08:41 etc/
drwxr-xr-x  5 ashish ashish  4096 Jan 11 08:41 usr/

Se você não obtiver as pastas como bin , etc e usr , cometeu algum erro.

Agora, você pode copiar todos os arquivos dessas pastas para os destinos reais ( /bin/tar , /usr/local/bin/tar etc) e fazer

tar --help

Se você obtiver uma saída mostrando os comandos do tar, ela funcionará!

Agora faça

sudo apt-get install --reinstall tar

que deve reinstalar o tar. Se você receber um erro dizendo para executar apt-get -f install , faça isso e reinstale o tar, funcionou para mim no Ubuntu 14.04 LTS.

    
por Ashish Ahuja 11.01.2017 / 05:02
4

Você pode rodar um live-cd de sua versão distro do ubuntu para copiar tar da distro ao vivo para o seu disco rígido.

  1. Inicialize a partir do CD (ou usb)
  2. Monte o seu disco rígido em / mnt: (se o seu disco rígido for / dev / sdb1)

    mount /dev/sda1 /mnt
    
  3. Copiar / bin / tar para / mnt / bin / tar

    cp /bin/tar /mnt/bin/tar
    
  4. Se não for suficiente, você pode tentar copiar outros arquivos relacionados ao tar. Você pode listá-los com o dpkg:

    $ dpkg -L tar 
    /bin
    /bin/tar
    /usr
    /usr/sbin
    /usr/sbin/tarcat
    /usr/sbin/rmt-tar
    /usr/share
    /usr/share/doc
    /usr/share/doc/tar
    /usr/share/doc/tar/changelog.Debian.gz
    /usr/share/doc/tar/copyright
    /usr/share/doc/tar/NEWS.Debian.gz
    /usr/share/doc/tar/NEWS.gz
    /usr/share/doc/tar/README.Debian
    /usr/share/doc/tar/THANKS.gz
    /usr/share/doc/tar/AUTHORS
    /usr/share/man
    /usr/share/man/man8
    /usr/share/man/man8/rmt-tar.8.gz
    /usr/share/man/man1
    /usr/share/man/man1/tarcat.1.gz
    /usr/share/man/man1/tar.1.gz
    /usr/lib
    /usr/lib/tar
    /usr/lib/mime
    /usr/lib/mime/packages
    /usr/lib/mime/packages/tar
    /etc
    /etc/rmt
    
por Mat'arangéÇa 10.01.2017 / 17:57