Запуск Eclipse не под root'ом

Все о программировании под *nix
kreol
Увлекающийся
Сообщения: 99
Зарегистрирован: 02 июл 2007, 20:38
Откуда: Минск

Запуск Eclipse не под root'ом

Сообщение kreol »

При переносе Эклипса из Винды в Линукс появилось несколько неожиданных проблем.
Во-первых, при запуске Эклипса из под обычного пользователя постоянно вялетает ошибка:
JVM terminated. Exit code=1
и дальше переменные среды. При этом из под root'а всё работает нормально.
Гугль говорит, что проблема в правах доступа, но никак не могу понять в каких именно. Скрипт в /usr/bin с правами r-x, с теми же правами и launcher (не знаю, как по-русски)) из /usr/lib/eclipse. По идее дело в виртуальной машине, но у /usr/bin/java права rwx. Равно как и на workspace, с которого стартует Эклипс. Что может быть ещё не так?

Вторая проблема связана с перенесением плагинов из старого Эклипса в новый. Попробовал просто скопировать папки plugins и features, но закончилось всё тем, что Эклипс перестал запускаться даже под root'ом. Пришлось чистить всё и устанавливать с нуля. Собственно, для Эклипса не ново вот так реагировать на неправильно (не через апдейт менеджер) установленные плагины, но искать вручную и качать из интернета 200 мегабайт плагинов тоже как-то не хочется. Есть другой способ?

Ubuntu 8.04
Eclipse 3.2

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

Re: Запуск Eclipse не под root'ом

Сообщение grub »

Права задаются триплетом, т.е. rwxrwxrwx -- это например полные права,
а rwxr--r-- -- когда только владелец файла может делать с файлом все, а остальные -- только читать.

Поэтому стоит на будущее полностью писать режим доступа для файлов.

Проблема скорее всего не в правах запуска, т.к. в этом случае ты бы получал соответствующую стандартную ошибку shell-а.

JVM terminated -- обозначает что уже именно Java попыталась подняться, но не осилила. Например, не нашла каких-то нужных библиотек, или не смогла прочитать какой-то файл.

Раз под root-ом запускается -- проверяй права на чтение для своего пользователя на все что задействовано (конфиги и т.п.)

Это так, в порядке первой неотложной диагностики.
Змагайся і адпачывай!

kreol
Увлекающийся
Сообщения: 99
Зарегистрирован: 02 июл 2007, 20:38
Откуда: Минск

Re: Запуск Eclipse не под root'ом

Сообщение kreol »

Ну Эклисп ставился под рутом, поэтому хозяин и группа для всех файлов - только рут, а права, которые я указывал, соответственно, были для всех пользователей. Но на будущее учту замечание, спасибо.
Эклипс заработал после добавления прав на запись и запуск для всех пользователей на все файлы из /usr/lib/eclipse, а совсем не для JVM, как ни странно. Есть подозрение, что дело было в поддиректории configuration. Единственный неприятный баг, который остался, это то, что Эклипс напрочь отказывается запоминать последнее рабочее место (workspace, в смысле) и начинает каждый раз с домашней папки пользователя. Возможно, дело опять в правах, а возможно и в настройках самого Эклипса.

А вот с плагинами ну никак. Попробовал ещё раз скопировать плагины уже в новый ничем не запятнаный Эклипс и получил тот же результат: при запуске появляется эмблема Эклипса, некоторое время висит (не показывая прогресс загрузки), а затем просто закрывается. Ясно, что проблема в битых плагинах, но их там достаточно много, и проверять ручками все подряд не сильно хочется. Есть какой-то другой способ проверить, в каком плагине проблема?

Аватара пользователя
IceMan
Неотъемлемая часть форума
Сообщения: 377
Зарегистрирован: 22 июл 2007, 10:12
Откуда: Минск
Контактная информация:

Re: Запуск Eclipse не под root'ом

Сообщение IceMan »

strace'ом его =) и смотреть обо что спотыкается.

kreol
Увлекающийся
Сообщения: 99
Зарегистрирован: 02 июл 2007, 20:38
Откуда: Минск

Re: Запуск Eclipse не под root'ом

Сообщение kreol »

Спасибо, попробую.

kreol
Увлекающийся
Сообщения: 99
Зарегистрирован: 02 июл 2007, 20:38
Откуда: Минск

Re: Запуск Eclipse не под root'ом

Сообщение kreol »

strace показал в конце вот такое:

Код: Выделить всё

...
close(3)                                = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7435768) = 13199
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 13199
--- SIGCHLD (Child exited) @ 0 (0) ---
shmctl(7864421, IPC_64|IPC_RMID, 0)     = 0
exit_group(0)                           = ?
Process 13198 detached
Это если напрямую /usr/lib/eclipse/./eclipse запускать. Если через скрипт, то чуть раньше появляется ещё вот такое интересное собщение:

Код: Выделить всё

stat64("/usr/lib/eclipse//usr/lib/eclipse/startup.jar", 0xbfea5964) = -1 ENOENT (No such file or directory)
хотя в скрипте запуск производится так:

Код: Выделить всё

# Do the actual launch of Eclipse with the selected VM.
exec /usr/lib/eclipse/eclipse \
    -vm "${JAVACMD}" \
    -install "${INSTALL}" \
    -startup "${STARTUP}" \
    ${CMDLINEARGS} \
    -vmargs -Djava.library.path=/usr/lib/jni \
            -Dgnu.gcj.precompiled.db.path=/var/lib/gcj-4.1/classmap.db \
            -Dgnu.gcj.runtime.VMClassLoader.library_control=never \
            -Dosgi.locking=none ${VMARGS}
То есть как бы запуск по абсолютному пути и сложения строк не должно бы быть.

Ещё интересная особенность. "Чистая" копия из домашней директории запускается нормально, но при смене воркспейса вылетает ошибка и предлагает посмотреть логи. А в логах:

Код: Выделить всё

!ENTRY org.eclipse.update.configurator 2009-01-02 03:25:24.791
!MESSAGE Could not install bundle ../../../usr/lib/eclipse/plugins/org.eclipse.team.ui_3.2.1.M200608151725.jar   Bundle "org.eclipse.team.ui" version "3.2.1.M200608151725" has already been installed from: update@plugins/org.eclipse.team.ui_3.2.1.M200608151725.jar

...

!ENTRY org.eclipse.core.runtime 4 0 2009-01-02 03:25:25.237
!MESSAGE FrameworkEvent.ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle could not be resolved. Reason: Another singleton version selected: org.eclipse.core.runtime_3.3.100.v20070530
   at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)

!ENTRY org.eclipse.osgi 4 0 2009-01-02 03:25:25.245
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.core.runtime_3.2.0.v20060603.jar/ was not resolved.

!ENTRY org.eclipse.osgi 4 0 2009-01-02 03:25:25.251
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(org.eclipse.osgi_3.2.1.R32x_v20060919.jar.so)
   at java.lang.reflect.Method.invoke(libgcj.so.81)
   at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
   at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
   at org.eclipse.core.launcher.Main.run(Main.java:977)
   at org.eclipse.core.launcher.Main.main(Main.java:952)

!ENTRY org.eclipse.osgi 2 0 2009-01-02 03:25:25.550
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2009-01-02 03:25:25.550

...
В общем, синдромы без системы. Идеи?

special
Заглянувший
Сообщения: 1
Зарегистрирован: 27 июн 2009, 21:56

Re: Запуск Eclipse не под root'ом

Сообщение special »

kreol, у меня возникла очень похожая проблема. Удалось выяснить как с этим бороться?

Ответить