当时我正在用 Ubuntu PC 做一些事情,
sudo apt-get autoremove tar
弄乱了我的电脑。我本来想重新安装 tar,但后来删除了它,以为删除后再安装。这是一个错误,我很后悔。
现在,如果我的电脑中没有安装 tar,我几乎什么也做不了。我无法使用 安装任何软件包apt-get
,也无法使用 安装软件包dpkg
。我尝试下载.deb
tar 文件并使用 将其安装在我的电脑中dpkg
,但正如我所说的,我也无法做到这一点。
我无法使用apt-get
任何一种方式安装 tar,所以我不知道如何在我的计算机上再次安装 tar。
我尝试在包括 AU 在内的网站上进行搜索,但找不到解决方案。
如果您的计算机中没有安装 tar,如何安装 tar?(使用 apt-get、dpkg 等解决方案不起作用)我在 Ubuntu 14.04 LTS 上。
答案1
我用一些 hack 变通方法解决了这个问题,但它确实有效。不过这可能不是解决问题的最佳方法。我通过以下部分内容找到了答案@steeldriver 的评论并添加一些我自己的。
首先你需要下载tar 的 .deb 文件。
使用命令进入下载文件夹
cd ~/Downloads/
然后做
ls | grep tar
确保下载成功。您应该得到类似以下内容的输出
tar_1.27.1-1ubuntu0.1_i386.deb
如果没有,您应该尝试再次下载。
我将使用该名称mytar.deb
作为答案,但请将其替换为.deb
文件的真实名称
.deb
现在,您需要提取文件的内容没有使用 tar。
首先做
ar x mytar.deb
哪个将从档案中提取文件进入当前目录。要列出现有文件,请执行
ar t mytar.deb
输出类似
debian-binary
control.tar.gz
data.tar.xz
data.tar.xz
包含我们需要复制的实际文件。我们无法使用tar
它们来提取它们,因为我们当前的计算机没有 tar 命令。
首先让我们转换data.tar.xz
为data.tar
。为此,请执行
xz -dc < data.tar.xz > data.tar
这将创建一个新文件data.tar
。
现在,我们需要创建一个到 busybox 的链接,正如 @steeldriver 在评论中提到的那样。所以这样做
sudo ln -s /bin/busybox /usr/local/bin/tar
创建符号链接。
然后,您基本上是在使用 busybox 而不是 tar。因此,如果您使用命令 tar,它会调用 busybox。现在执行
mkdir temp
创建一个虚拟目录。然后
tar -xf data.tar -C temp/
提取.tar
文件并将其内容转储到目录中。使用以下命令temp
将工作目录更改为temp
cd temp
然后做,
ls -pal
得到类似的输出
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/
如果您没有获得像bin
、、etc
和这样的文件夹usr
,那么您犯了一些错误。
现在,你可以将这些文件夹中的所有文件复制到实际目的地(/bin/tar
,/usr/local/bin/tar
等等),然后执行
tar --help
如果您获得显示 tar 命令的输出,则表明它有效!
现在做
sudo apt-get install --reinstall tar
这应该会重新安装 tar。如果它给你一个错误提示让你运行apt-get -f install
,请运行它然后重新安装 tar,它在 Ubuntu 14.04 LTS 上对我有效。
答案2
您可以运行您的 ubuntu 发行版的 live-cd,将 tar 从 live 发行版复制到您的硬盘驱动器。
- 从 CD(或 USB)启动
将硬盘挂载到 /mnt:(如果您的硬盘是 /dev/sdb1)
mount /dev/sda1 /mnt
将 /bin/tar 复制到 /mnt/bin/tar
cp /bin/tar /mnt/bin/tar
如果还不够,你可以尝试复制其他 tar 相关文件。你可以使用 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