对于那些有兴趣恢复更新站点的人,这里有一种方法可以完成这项工作,它可能适合您,也可能不适合您:
- 找到
${ECLIPSE_HOME}\p2\org.eclipse.equinox.p2.engine\profileRegistry\<profile>\.data\.settings\org.eclipse.equinox.p2.artifact.repository.prefs 文件。 <profile> 取决于安装的 Eclipse,对我来说是 epp.package.rcp.profile。
- 查找以
/uri= 结尾的所有键:它们将包含原始URI。您可以使用 grep:grep --color -Po '/uri=.+' org.eclipse.equinox.p2.artifact.repository.prefs(您可能需要过滤 file:/ URI)。
- 删除
/uri 并取消转义该属性以重新获得有效的 URI:sed 非常适合。例如:sed -E -e 's@^/uri=@@g' -e 's@\\@@g'
- 申请
sort --unique
现在,你会得到这个命令行和结果:
$ grep --color -Po '/uri=http.+' org.eclipse.equinox.p2.artifact.repository.prefs | sed -E -e 's@^/uri=@@g' -e 's@\\@@g' | sort
https://spotbugs.github.io/eclipse/
http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest/
http://download.eclipse.org/eclipse/updates/4.7
http://download.eclipse.org/eclipse/updates/4.7/R-4.7-201706120950
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1-201709061700
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1a-201710090410
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.2-201711300510
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.3-201803010715
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.3a-201803300640
你快到了!
如果您查看上面的示例,您可以看到同一端点 (/eclipse/updates/4.7) 的多个重复 URI,这是一个 P2 复合存储库:您可以将其添加到 sed 命令以删除这些部分:-e 's@/(R-[^/]+|)20[0-9]{10}@@g'。
这样更好:
$ grep --color -Po '/uri=http.+' org.eclipse.equinox.p2.artifact.repository.prefs | sed -E -e 's@^/uri=@@g' -e 's@\\@@g' -e 's@/(R-[^/]+|)20[0-9]{10}@@g' | sort --unique
http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest/
http://download.eclipse.org/eclipse/updates/4.7
http://download.eclipse.org/efxclipse/updates-released/3.0.0/site
http://download.eclipse.org/releases/oxygen
http://download.eclipse.org/technology/epp/packages/oxygen/
http://eclipse.pitest.org/release/
http://netceteragroup.github.io/quickrex/updatesite
http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-tycho/0.8.0/N/0.8.0.201409231215/
http://ucdetector.sourceforge.net/update/
现在我们将其转换为要导入的 XML 文件:在可用软件站点中,您可以导出一个包含此条目的 bookmarks.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<bookmarks>
<site url="http://download.eclipse.org/eclipse/updates/4.7" selected="true" name=""/>
</bookmarks>
由于您可能不关心name 或selected(Eclipse 也可能使用更新站点元数据更新这些),您可以再次使用内置或sed:
$ grep --color -Po '/uri=http.+' org.eclipse.equinox.p2.artifact.repository.prefs.old | \
sed -E -e 's@^/uri=@@g' -e 's@\\@@g' -e 's@/(R-[^/]+|)20[0-9]{10}@@g' | \
sort --unique | \
while read url; do echo "<site url=\"${url}\" />"; done > bookmarks.xml
您现在有一个要编辑的bookmarks.xml:只需添加<?xml version="1.0" encoding="UTF-8"?> <bookmarks> 和</bookmarks>,然后将其导入可用的软件套件。
剩下的就是启用所有网站,方法是选择它们并点击启用。完成后,像往常一样尝试更新 Eclipse,这样就可以了!
您可能想要:
- 删除所有无效条目或至少禁用它们
- 将您的
bookmarks.xml 保存到存储库或“某处”。
- 再次导出
bookmarks.xml,现在使用正确的名称。
祝你好运!
并且...提出这个错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=502524