Ubuntu – Tar is uninstalled, how is it possible to reinstall it

14.04aptpackage-managementtar

I was doing some stuff on my Ubuntu PC, when I did

sudo apt-get autoremove tar

and messed up my computer. I apparently wanted to reinstall tar, but instead removed it thinking I would install it after it is removed. This was a mistake and I regret doing it.

Now, I can hardly do anything with tar not installed in my computer. I can't install any packages using apt-get, neither can I install packages using dpkg. I tried downloading a .deb file of tar and installing it in my computer using dpkg, but as I said I couldn't do that either.

I can't install tar using apt-get either, so I couldn't figure out how to install tar in my computer again.

I tried searching on websites including AU, but couldn't find a solution to this.

How can you install tar without having tar installed in your computer? (solutions with apt-get, dpkg etc will not work) I'm on Ubuntu 14.04 LTS.

Best Answer

  • I solved the problem with some hacky workarounds, but it works. Might not be the best way to solve the problem though. I got the answer by following some parts of @steeldriver's comment and adding some of my own.


    First you need to download the .deb file for tar.

    Go to you Downloads folder, by using the command

    cd ~/Downloads/
    

    and then doing

    ls | grep tar
    

    to make sure the download succeeded. You should get an output similar to

    tar_1.27.1-1ubuntu0.1_i386.deb
    

    If not, you should try downloading again.


    I'm going to use the name mytar.deb for the answer, but replace that with the real name of your .deb file

    Now, you need to extract the contents of the .deb file without using tar.

    First do

    ar x mytar.deb
    

    which will extract the files from the archive into the current directory. To list the files present, do

    ar t mytar.deb
    

    which will output something similar to

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

    data.tar.xz contains the actual files which we need to copy. We cannot use tar to extract them because our current computer does not have the tar command.

    First lets convert data.tar.xz to data.tar. To do this, do

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

    which should create a new file data.tar.

    Now, we need to create a link to busybox as mentioned by @steeldriver in the comments. So do

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

    to create a symlink.

    Then, you basically are using busybox instead of tar. So if you use the command tar, it invokes busybox instead. Now do

    mkdir temp
    

    to create a dummy directory. Then

    tar -xf data.tar -C temp/
    

    to extract the .tar file and dump its contents in the directory temp. Change the working directory to temp by using

    cd temp
    

    Then do,

    ls -pal
    

    to get an output like

    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/
    

    If you do not get the folders like bin, etc, and usr, you have made some mistake.

    Now, you can just copy all the files in those folders to the actual destinations (/bin/tar, /usr/local/bin/tar etc), and then do

    tar --help
    

    If you get an output showing the commands of tar, it works!

    Now do

    sudo apt-get install --reinstall tar
    

    which should reinstall tar. If it gives you an error saying to run apt-get -f install, do that and then reinstall tar, it worked for me on Ubuntu 14.04 LTS.

  • Related Question