我所有的 Ubuntu 虚拟机都有 apt-get 更新问题

kas*_*ani 6 apt virtualbox gnupg

我在 x86_64 Windows 7 主机上运行 Virtualbox 4.1。我有一组 12.04 和 10.04 LTS VM,用于创建工作用的​​ deb。上周,我开始注意到 12.04 VM 上的问题。尝试了通常的 apt-get clean bit 但没有帮助。

我推出了一个新的 11.10 VM 来测试 Worpress 升级。此 VM 从未能够无错误地运行 apt-get update。有趣的错误如下所示:

Get: 8 http://security.ubuntu.com oneiric-security/main Translation-en_US [344 B]
14% [7 Sources 48686/877 kB 6%] [Waiting for headers]bzip2: (stdin) is not a bzip2 file.
Hit http://security.ubuntu.com oneiric-security/multiverse Translation-en
Hit http://security.ubuntu.com oneiric-security/restricted Translation-en
Hit http://security.ubuntu.com oneiric-security/universe Translation-en
22% [7 Sources 127526/877 kB 15%] [Waiting for headers]/usr/bin/xz: (stdin): File format not recognized
Run Code Online (Sandbox Code Playgroud)

并以

/usr/bin/xz: (stdin): File format not recognized
Ign http://us.archive.ubuntu.com oneiric/main Translation-en_US                                                    
Ign http://us.archive.ubuntu.com oneiric-updates/main Translation-en_US                                            
Fetched 18.5 MB in 47s (392 kB/s)                                                                                  
W: GPG error: http://us.archive.ubuntu.com oneiric InRelease: File /var/lib/apt/lists/partial/us.archive.ubuntu.com_ubuntu_dists_oneiric_InRelease doesn't start with a clearsigned message
W: GPG error: http://security.ubuntu.com oneiric-security InRelease: File /var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_oneiric-security_InRelease doesn't start with a clearsigned message
Run Code Online (Sandbox Code Playgroud)

xv-utils、lzma 等都安装好了。我已经从头开始重新安装了虚拟机 3 次,并且在同一点上重新安装。

kas*_*ani 9

这是一个愚蠢的。

问题是我最近将 Virtualbox 切换到 Ubuntu 虚拟机的 NAT 而不是桥接它们。我运行了几次测试,发现如果启用了 NAT,传入的文件就会出现编码问题。一旦我将主界面返回到桥接模式,错误就会更改为标准的 BADSIG 错误,该错误通过再次从 keyserv 获取密钥并运行 apt-get clean 来修复。


小智 5

这个解决方案在我的情况下完美地工作:

更改 apt 用于查找更新 url 的配置文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup -- 保留 conf 的备份

sudo gedit /etc/apt/sources.list

在编辑器中找到并将所有 http:// 替换为 ftp://

或者

删除所有内容并用镜像替换它。

deb ftp-mirror name YOUR_UBUNTU_VERSION_HERE main 
deb-src ftp-mirror name YOUR_UBUNTU_VERSION_HERE main 
Run Code Online (Sandbox Code Playgroud)

可以从这里得到其他镜子

我这样做是因为出于某种原因在虚拟机中运行 http:// 无法与 apt 一起使用。试试这个希望这会奏效