几个月来,我一直愉快地使用 Ubuntu(几乎完全更新,最新的 AMD 驱动程序和所有东西)。大约一周前,我开始尝试安装一些从 Humble Bundle 购买的游戏,这些游戏是我在家里和其他电脑上下载的(我的网络很差,所以用 Torrent 比较容易),其中一些是.deb
文件。
当我尝试安装这些软件包时,有些软件包会尝试安装然后返回,就像什么都没发生一样(可能是因为内部错误),或者要求我找不到依赖项。由于这些问题,我尝试使用终端(使用sudo dpkg -i <package name>
)安装相同的软件包,但过了一会儿,菜单栏上出现了一个红色气球图标,其中包含存储库的文件出现错误(不记得确切的错误,抱歉。但我认为是它无效并且无法写入)。
我把它留到以后再修复,但过了一会儿,软件中心开始给出损坏的软件包错误并要求修复它,所以我打开终端并执行了操作apt-get install -f
,就像我以前遇到这种情况时所做的那样。它要求我下载 888 KB 的软件包,我同意了,但不久之后,它开始自动删除系统上的所有内容。它卸载了界面、网络驱动程序、许多程序等等。
当我注意到它时,我迅速关闭了它,但为时已晚。网络连接菜单不见了(驱动程序可能也消失了),所以我无法使用互联网。看到我自己无能为力,我重新启动以查看它是否是暂时的,但现在系统启动时没有图形界面(它只显示tty
)。
我有 3G 网络(慢得要命),我不知道如何仅使用终端连接它,因此修复起来要困难得多。那么,是否可以在不重新安装的情况下修复它(请不要让我用这种糟糕的连接重新安装它)?如果需要的话,我这里有 Live USB。
哦,我忘了提供重要信息。我使用的是 Ubuntu 12.10 AMDx64,安装在 101GB ext4 分区上。只有 58MB(大约)的更新等待完成(因此大部分都已更新)。
答案1
可能您安装了一些 deb,它们与您提到的某些应用程序可能需要的某些包相冲突,因此它们被删除了。
如果您使用的是 12.04,不久前我看到一个可能与您遇到的问题相关的错误(如果我没记错的话,当被要求安装 32 位库时,apt-get 删除了一些软件包)。
无论哪种方式您都应该能够恢复,但您需要互联网连接,并且可能需要下载一些软件包。
要连接您的 3G 设备,请查看这有帮助。您可能还需要编辑/etc/resolv.conf
您的 DNS 信息。此外,还有一个小工具叫做sakis3g这可能会对你有帮助。
连接到互联网后,尝试
sudo apt-get install ubuntu-desktop
这应该会安装默认 Ubuntu 安装中的所有内容。请注意,您可能需要卸载导致冲突的任何内容。
如果它不起作用,您可以使用它dpkg --get-selections
来获取已安装/删除的软件包的列表,然后从那里手动安装它们(即逐个安装)。
提示:下次您需要检查apt-get
将执行的操作时,--dry-run
在命令中添加:它只会模拟执行,而不会修改系统。例如:
$ sudo apt-get remove tasksel --dry-run
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
tasksel tasksel-data
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
Remv tasksel [2.88ubuntu9] [tasksel-data:amd64 ] <-- tasksel would be removed.
Remv tasksel-data [2.88ubuntu9] <-- tasksel-data would be removed.