我正在使用 MiKTeX 更新向导。在我上次尝试更新之前,它一直运行良好。我收到以下错误:
抱歉,出现错误:
远程软件包存储库未联机。您必须选择其他存储库。网址 = “http://get-software.net/systems/win32/miktex/tm/packages/“
我已经通过在浏览器中手动输入上述内容进行了检查,它是有效的并且会显示出来。
当我要求它提供一个可供选择的服务器列表时,我什么也没得到。
MiKTeX 仍然有效,我只是想更新到最新的软件包。这是我的问题吗?顺便说一句,我使用的是 Windows 8.1 和 MikTex 2.9。
谢谢你提供的所有帮助!
答案1
我的个人经验表明,对于 MiKTeX 存储库来说,“在线”不仅取决于该存储库是否可以通过 HTTP 或 FTP 访问,还取决于它是否包含有效的包数据。
与@ulrike-fischer 的旧评论相反这里每次我启动 MiKTeX 更新向导并选择固定存储库时,向导都会首先连接到MiKTeX 存储库 Web 服务。我的假设是,它会验证存储库是否包含有效的包数据,因此可以安全地进行更新。
执行时mpm --list-repositories
,MiKTeX 包管理器会向同一服务查询当前包含有效包数据的存储库列表。当然,有时它会将我首选的存储库标记为离线,即使它仍可通过 HTTP 访问。
当前 Web 服务响应为mpm --list-repositories
:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetRepositories4Response xmlns="http://miktex.org/2015/06/repository">
<GetRepositories4Result />
</GetRepositories4Response>
</soap:Body>
</soap:Envelope>
请注意空GetRepositories4Result
标签:就存储库 Web 服务而言,所有 MiKTeX 存储库都处于离线状态,无法用于更新。这可能与 2016 年 5 月 10 日的大规模 MiKTeX 更新有关。
我猜想存储库获得 MiKTeX 的更新版本并将其标记为在线只是时间问题。
我一直认为,虽然可以通过 FTP 或 HTTP 访问 MiKTeX 存储库(并将各个包下载到您的本地存储库),但它有时会被集中标记为“暂时不可用”,例如由于正在不断更新包——我猜,您肯定不希望您的用户从半更新的存储库运行更新。