softonic - Lista de sitios de software disponibles perdidos después de la actualización de Eclipse
eclipse softonic (5)
Después de hacer clic en Verificar actualización, instalar algunas actualizaciones y hacer clic en Aceptar para reiniciar Eclipse, la lista de sitios de software disponibles en la ventana Instalar desaparece.
¿Es posible conseguirlo como estaba?
Si no, ¿cómo puedo reconstruirlo para que mis complementos se actualicen en el futuro?
Estoy trabajando con Eclipse 4.3.2 en Windows 7.
Intenta ejecutar Eclipse como administrador. De esa manera, el "buscar actualizaciones" debería funcionar.
Me encontré con el mismo problema en un Win10-64bit después de un conjunto de actualizaciones automáticas. Todos los ajustes para "Sitios de software disponibles" se perdieron. Eclipse p2 Repository
Para actualizar su instalación de Eclipse a esta secuencia de desarrollo, puede usar el repositorio de software en http://download.eclipse.org/eclipse/updates/4.5 . Para actualizar su compilación para usar esta compilación específica, puede usar el repositorio de software en http://download.eclipse.org/eclipse/updates/4.5/R-4.5.2-201602121500
Me encontré con el mismo problema en un Win7-64bit después de un conjunto de actualizaciones automáticas. Todos los ajustes para "Sitios de software disponibles" se perdieron. Mi versión de eclipse después de la pérdida de datos fue luna 4.4.2. (ahora no tengo el número de versión anterior, había instalado eclipse-cpp-luna-SR1a-win32-x86_64_2014.zip).
Configuré este sitio para obtener el diálogo "/ Ayuda / Instalar nuevo software ..." nuevamente:
Eclipse-Project-Repository - http://download.eclipse.org/eclipse/updates/4.4
Para obtener el repositorio para otra versión de eclipse mira here . Siga el enlace a su versión de eclipse y busque allí el "Repositorio de Eclipse p2".
Para aquellos interesados en restaurar el sitio de actualización, aquí hay una manera de hacer el trabajo que puede o no funcionar para usted:
- Busque el
${ECLIPSE_HOME}/p2/org.eclipse.equinox.p2.engine/profileRegistry/<profile>/.data/.settings/org.eclipse.equinox.p2.artifact.repository.prefs
. El<profile>
depende del Eclipse instalado, para mí fueepp.package.rcp.profile
. - Encuentre todas las claves que terminan en
/uri=
: contienen el URI original. Puede usar grep:grep --color -Po ''/uri=.+'' org.eclipse.equinox.p2.artifact.repository.prefs
(puede querer filtrar elfile:/
URI). - Elimine
/uri
y extraiga la propiedad para recuperar un URI válido:sed
es bueno para eso. por ejemplo:sed -E -e ''s@^/uri=@@g'' -e ''s@//@@g''
- Aplicar una
sort --unique
Ahora, tendrías esta línea de comando y el resultado:
$ 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
¡Ya casi has llegado!
Si observa el ejemplo anterior, puede ver varios URI duplicados para el mismo punto final ( /eclipse/updates/4.7
) que es un repositorio compuesto de P2: puede agregarlo al comando sed para eliminar estas partes: -e ''s@/(R-[^/]+|)20[0-9]{10}@@g''
.
Eso es mejor:
$ 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/
Ahora lo transformaremos en un archivo XML para importar: en los Sitios de software disponibles, puede exportar un archivo bookmarks.xml
que contiene esto para una entrada:
<?xml version="1.0" encoding="UTF-8"?>
<bookmarks>
<site url="http://download.eclipse.org/eclipse/updates/4.7" selected="true" name=""/>
</bookmarks>
Como es probable que no te importe el name
o la selected
(Eclipse también puede actualizarlos con los metadatos del sitio de actualización), puedes usar de nuevo incorporado o 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
Ahora tiene un bookmarks.xml
para editar: simplemente agregue <?xml version="1.0" encoding="UTF-8"?> <bookmarks>
y </bookmarks>
, e impórtelo en el paquete de software disponible .
Todo lo que queda es habilitar todo el sitio seleccionándolos y haciendo clic en Habilitar . Cuando haya terminado, intente actualizar Eclipse como de costumbre y ¡eso debería funcionar!
Es posible que desee:
- Eliminar cualquier entrada inválida o al menos deshabilitarla
- Guarde su
bookmarks.xml
en un repositorio o "en algún lugar". - Exportar el
bookmarks.xml
nuevo, ahora con el nombre propio.
¡Buena suerte!
Y ... elevar este informe de error: https://bugs.eclipse.org/bugs/show_bug.cgi?id=502524
Reparado en neón
Una buena noticia es que los sitios de actualización disponibles sobreviven a la actualización de Eclipse en Neon. Pero todavía veo este problema en Marte y mayores.
Arreglo para Marte y versiones anteriores.
Hay un cambio simple que solucionó este problema para mí en Marte: está agregando el parámetro JVM "-Djava.net.preferIPv4Stack = true" a Eclipse.ini antes de ejecutar una actualización:
-Djava.net.preferIPv4Stack=true
Tenga en cuenta que este es un argumento de VM, por lo que debe ir después de "-vmargs"
Entonces, ¿por qué los sitios de software disponibles se eliminaron en la actualización?
La actualización de Eclipse se realiza mediante ProvisioningJob, que llama a LoadMetadataRepositoryJob.runModal (), que a su vez llama a MetadataRepositoryManager.loadRepository ().
AbstractRepositoryManager.loadRepository () comprueba si un repositorio es válido llamando a checkcheckNotFound (). Si no se encuentra que el repositorio no se agrega. preferIPv4 = true lo arregla.