Я создал пакет Ubuntu для установки моего приложения RCP. Установленные файлы принадлежат пользователю root. Может ли пользователь впоследствии устанавливать обновления через P2? Документация по Многопользовательские установки Eclipse предполагают, что это возможно, наряду с ответом на этот вопрос.
Однако, когда я запускаю приложение, оно не проверяет наличие обновлений автоматически, как обычно, и сайт обновлений, который я указал в p2.inf
, не отображается в диалоговом окне «Установить новое программное обеспечение...».
Использование параметров времени выполнения -configuration
или -data
не помогло.
Я могу заставить его работать с помощью хака, запустив sudo chown -R <my_username> /opt/<my_app_installation>
. Когда я впоследствии запускаю приложение, оно правильно проверяет наличие обновлений при запуске, и мой сайт обновлений правильно отображается в диалоговом окне «Установить новое программное обеспечение ...». Конечно, я бы предпочел, чтобы любые данные, которые он записывает в этот установочный каталог, вместо этого записывались в домашний каталог пользователя.
Дополнительная информация:
Вот список файлов и папок, которые появились в моем установочном каталоге только после того, как каталог стал владельцем <my_username>
и программа была запущена.
/opt/<my_app_installation>/configuration/org.eclipse.core.runtime
/opt/<my_app_installation>/configuration/org.eclipse.equinox.app
/opt/<my_app_installation>/configuration/org.eclipse.osgi
/opt/<my_app_installation>/p2/org.eclipse.equinox.p2.engine/profileRegistry/profile.profile/1339896994308.profile.gz
/opt/<my_app_installation>/p2/org.eclipse.equinox.p2.engine/profileRegistry/profile.profile/.data/.settings/org.eclipse.equinox.p2.ui.sdk.prefs
/opt/<my_app_installation>/p2/org.eclipse.equinox.p2.engine/profileRegistry/profile.profile/.data/.settings/org.eclipse.equinox.p2.ui.sdk.scheduler.prefs
/opt/<my_app_installation>/p2/org.eclipse.equinox.p2.repository
Другие экспериментальные результаты:
Даже с доступным для записи каталогом установки (chown'd) никакие файлы не помещаются туда, когда указана опция времени выполнения -configuration $HOME/.my_app_files
.
-initialize
при первом запуске от имени пользователя? Я считаю, что необходимо разместить файлы в домашнем каталоге в соответствии с вашей конфигурацией. После первого запуска эта опция вам больше не понадобится. - person Justin.Wood   schedule 26.06.2012-initialize
предназначена для создания каталогов конфигурации без фактического запуска приложения с графическим интерфейсом. При первом запуске, если вы опустите параметр-initialize
, каталоги конфигурации все равно будут созданы. - person kostmo   schedule 26.06.2012