适用于 Windows 10 的 Linux 子系统中的 apt 出现故障,并显示 404 未找到



好的,这是我的第一个SO问题,所以我将尽力解决这个问题。

我有一台 Windows 10 笔记本电脑,我正在尝试在其上安装gcc.我过去曾尝试过诸如netbeans,cygwin以及各种模拟器和虚拟机之类的替代方案,但都无济于事。

到目前为止,我一直在工作,我启用了"新"Windows开发人员模式,该模式允许我从Windows商店下载Linux bash shell。它适用于所有常规的 Linux 命令,但没有安装 gcc。

当我在外壳中输入gcc(或gcc --version)时,它会打印以下行:

程序"gcc"当前未安装。您可以通过键入以下内容来安装它: sudo apt install gcc

我尝试过,然后它运行了一堆安装程序的东西,但似乎一直遇到如下错误:

错误:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdpkg->perl all 1.18.4ubuntu1.2

404 未找到 [IP:在此处插入 IP 地址]

其中每个错误行上的 IP 地址不同。

它最终失败并显示以下行:

无法获取某些存档,也许运行 apt-get 更新或尝试使用 --fix-missing ?

我已经尝试过,但再次出现与上述相同的错误。

我真的很想让gcc在Windows/Linux shell中工作,因为它在其他方面都很好用,并且我正在努力将计算机上的程序数量保持在最低限度。

有谁知道为什么这不起作用,或者我如何(如果可能的话)让它工作?

附言由于学校原因,我确实需要gcc

值得一提的是:在遇到类似问题后,我进入了这个 SO 主题。

为我修复它的是运行

sudo apt-get update
sudo apt-get upgrade

我想存储库 URL 太旧了,即使我的 Ubuntu 是最新版本。

我只是在尝试安装python-pip时遇到了同样的事情。根据本文,当您拥有 Windows 10 周年更新(较旧)而不是创意者更新(较新)时,会发生这种情况。解决方案是卸载并重新安装 Ubuntu,或升级它(从 14.04 到 16.04)。我发现升级既简单又轻松:

sudo do-release-upgrade

要通过以下方式检查您之前和之后拥有的内容:

lsb_release -a

我遇到了同样的问题。ping IP 导致没有响应,访问网站返回 404。

我找到了一个最新的GCC的PPA,并注册了PPA,并能够成功地安装GCC;ppa网站。我使用 GCC 构建了一些我想要的软件,而这些软件在apt-get中找不到。

从他们的页面:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update

尝试在Windows中运行Ubuntu应用程序,选项为"以管理员身份运行"。

最新更新