wake-up-neo.net

Verwenden eines anderen Speicherorts für die .p2-Struktur von Eclipse ("Bündelpool")

Ich versuche gerade, Eclipse so einzurichten, dass es von/opt/Eclipse ausgeführt wird.

Alles lief gut; Ich extrahiere die Software mit dem Eclipse-Installationsprogramm nach/opt/Eclipse. Ich habe einen Softlink in meinem Verzeichnis/usr/bin erstellt, sodass ich einfach 'Eclipse' eingeben könnte, um es von einem beliebigen Ort in meinem Benutzerterminal aus auszuführen, und ich dachte, ich wäre fertig, bis dies geschah:

$ Eclipse/root/.p2/pool/plugins/org.Eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444: Datei mit gemeinsam genutzten Objekten kann nicht geöffnet werden: Berechtigung abgelehnt Gtk- Nachricht: GtkDialog wird ohne vorübergehende übergeordnete Komponente zugeordnet. Dies wird entmutigt.

Nach einigen Erkundungen in den Dateien /opt/Eclipse/eclipse.ini und /opt/Eclipse/configuration/config.ini kam ich zu dem Schluss, dass Eclipse mit dem Installationsprogramm mit Superuser-Berechtigung die erforderlichen Bibliotheken unter/installierte. Wurzelverzeichnis.

Ich kann "Sudo Eclipse" verwenden, und es funktioniert, aber es ist umständlich, jedes Mal mein Passwort eingeben zu müssen. Ich denke daran, die .p2-Datei unter/usr/lib zu kopieren, um sie zu "generalisieren" und den Zugriff von jedem pwd als Benutzer zu erlauben. wäre das eine kluge Idee oder sollte ich etwas anderes machen?

12
Cameron Wetzel

Der .p2-Ordner ist ein freigegebener Installationsordner, auf den alle vom Installationsprogramm erstellten Eclipse-Instanzen verweisen. Leider finde ich es nicht sicher, die vorhandene Version zu verschieben (ich bin vielleicht falsch, aber ich bin mir nicht sicher, wie oft darauf verwiesen wird), aber Sie können eine neue erstellen.

Das Konzept, das das Installationsprogramm verwendet, wird als "Bundle-Pool" bezeichnet. Sie können beliebig viele Standorte einrichten. Um die Bundle-Pool-Einstellungen zu öffnen, suchen Sie den entsprechenden Eintrag in der Benutzeroberfläche des Installationsprogramms.

Drücken Sie im Fall der einfachen Benutzeroberfläche oben auf das Menü (1) und wählen Sie dann Pools ...:  Bundle Pool setting with simple UI

Wenn Sie die erweiterte Benutzeroberfläche verwenden, finden Sie unten auf der ersten Seite des Assistenten eine Dropdown-Liste mit der Liste der vorhandenen Bundle-Pools. Durch Klicken auf die Schaltfläche daneben gelangen Sie zum Bundle Pool Manager.  Bundle Pool setting with the Advanced UI

In beiden Fällen können Sie im angezeigten Dialogfeld einen eigenen Bundle-Pool erstellen, den Sie in einem beliebigen Ordner ablegen und als Installationsquelle verwenden können.

Wenn Sie alle Ihre Installationen in diesen neuen Pool verschoben haben, können Sie Ihren ursprünglichen Pool-Pool-Ordner sicher entfernen. Er wird nicht mehr benötigt.

10
Zoltán Ujhelyi

Sagen Sie, dass ich Benutzer me bin.

  • Ändern Sie vor der Installation den Besitz von /opt/Eclipse mit Sudo chown -R me:me /etc/Eclipse, damit ich den envince-installer ohne Sudo-Rechte starten kann. 
  • Im einfachen Modus in /opt/Eclipse installieren. Es wird kein Ordner unter /root/.p2 erstellt. Der .p2-Baum wird in meinem Home-Verzeichnis installiert (aber wie in in der anderen Antwort gezeigt, können Sie dies auch anpassen) 
  • Machen Sie nach der Installation das Eigentum an /etc/Eclipse mit Sudo chown -R root:root /etc/Eclipse zurück. Jetzt kann ich die ausführbare Datei unter /opt/Eclipse ohne Sudo-Rechte starten, da kein Zugriff auf /root erforderlich ist.
  • Ich mache einen Alias ​​und sogar einen Eintrag im Startmenü, um Eclipse von der Desktop-Umgebung aus zu starten. 

Meine Spezifikationen: Ubuntu 14.04 LTS, Java SE-Laufzeitumgebung Build 1.8.0_111-b14, Eclipse-Installationsprogramm 1.6.0 Build 2790, Eclipse Neon

1
XavierStuvw

Nachdem ich die gleichen Probleme hatte, denke ich, dass es mehr Erklärungen zum eigentlichen Installer geben sollte. Ähnlich wie oben habe ich dies getan, um eine Installation zu erhalten, die von einem Nicht-Root-Benutzer verwendet werden kann, und alles, was "Eclipse" ist, am selben Ort zu speichern.

1) Beseitigen Sie das durch anfängliche Experimente verursachte Durcheinander:

  • Löschen Sie diese Ordner aus/root: .p2, .Eclipse, Eclipse
  • Löschen Sie das entpackte Installationsprogramm
  • Löschen Sie alles, was in/root/installiert war

2) Erstellen Sie die folgenden Ordner:

  • / opt/Eclipse
  • / opt/Eclipse/installer (entpacke deinen Installer hier)
  • / opt/Eclipse/pools
  • / opt/Eclipse/install

Führen Sie das Installationsprogramm als Sudo aus. Wählen Sie in der GUI die Option Erweiterte Installation und fügen Sie einen neuen Pool-Agenten im Ordner/opt/Eclipse/pools hinzu. Wählen Sie den Installationsordner als/opt/Eclipse/install aus. Nach der Installation löschen Sie alle neu erstellten Ordner '.p2', '.Eclipse', 'Eclipse' in/root.

Die ausführbare Datei heißt jetzt/opt/Eclipse/install/Eclipse/eclipse und kann von einem Benutzer ohne Rootberechtigung gestartet werden. Sie können auch neue Pakete installieren, z. PyDev als Nicht-Root-Benutzer.

0
LJHW

es wird angenommen, dass Eclipse der Ordner ist, in dem Ihr tragbarer Eclipse installiert ist: - Herunterfahren von Eclipse - Erstellen Sie einen Ordner unter Eclipse (dh myDATA) .__ - Bearbeiten Sie Eclipse\eclipse.ini- unter dem Eintrag -vmargs insert: -Duser.home =.\myDATA (Achten Sie darauf, dass -Duser.home später in der Ini-Datei überschrieben wird!) - Eclipse neu starten

jetzt können Sie Eclipse kopieren, wo immer Sie möchten.

0
Martin

Ich bin auf dasselbe Problem gestoßen (das Home-Verzeichnis wurde riesig) und habe einen Hack ausgeführt:

$ mv ~/.p2 /opt/Eclipse/p2
$ ln -s /opt/Eclipse/p2 ~/.p2

Das Eclipse-Installationsprogramm (... und Eclipse selbst) scheint mit dem Symlink zufrieden zu sein, und die "Pool" -Informationen werden jetzt im Bereich/opt/Eclipse gehostet und beanspruchen dort Speicherplatz.

Sie können müssen einige Superuser-Rechte haben, um den ersten Schritt zu machen, aber es funktioniert mit offenen Berechtigungen und mehreren Benutzern, die dem gleichen Bereich Symlinks hinzufügen.

0
mjn