在 MiKTeX 2.9 包管理器中,当我尝试同步时,它会向我发送一条消息:“远程包存储库不在线...”,但我知道服务器在线(我可以使用 FTP 手动下载包)。当我尝试更改存储库时,它会显示空列表。就像这样:
我该怎么做才能修复此问题,而无需从 repo 手动下载软件包?
答案1
有时,miktex 维护人员会禁用包含存储库列表的主服务器(例如,当出现严重错误时),以避免人们下载损坏的软件包。有时主服务器只是宕机了。
在这两种情况下,最好的办法是等待并检查 miktex 网站或 miktex 邮件列表上是否有消息。
如果你急需一个包,你可以从 CTAN 的 miktex 包文件夹下载它(http://mirrors.ctan.org/systems/win32/miktex/tm/packages/) 以及“包数据库”(两个 miktex-zz-XXX 文件)。将所有内容放在某个空文件夹中,并将其用作本地存储库。
答案2
如果miktex api 现已上线并显示有效的镜像,API 可能存在错误。在撰写本文时,API 中的 GetRepository4 和 VerifyRepository2 操作似乎都已损坏。但是,PickRepository4 操作工作正常,并且由于 API 返回了它,因此应用程序假定它是一个有效的存储库。您可以通过打开命令控制台并mpm --pick-repository-url
在相应的目录中运行来验证是否是这种情况。如果它显示 URL 而不是错误,则此解决方案应该适合您。
您无需执行以下步骤,只需卸载 miktex,然后选中卸载后应自行清理的选项即可。它将删除所有临时文件及其使用的注册表项。缺点是重新安装 miktex 后,您需要再次安装所有软件包。耶…… :(
编辑注册表可能会导致各种问题,包括各种崩溃。编辑注册表前请务必备份。如有疑问,请选择安全路线并阅读上一段。
为了使您的安装再次运行,请打开 regedit.exe(例如通过Windows+ R)。
导航到Computer\HKEY_CURRENT_USER\SOFTWARE\MiKTeX.org\MiKTeX\2.9\MPM\
。它应该包含三个键,分别是RemoteRepository
、RepositoryReleaseState
和RepositoryType
。删除这些键。
MiKTeX 包管理器(MPM)现在将默认向 api 询问最近的存储库,而不是使用您之前定义的存储库,这在大多数情况下都有效。