install4j: действие «Требовать привилегии» ведет себя по-разному для установщика и деинсталлятора в автоматическом режиме

#install4j

#install4j

Вопрос:

У меня есть:

  • install4j Мультиплатформенная версия 6.1.3 (сборка 6299)
  • Ubuntu 10.04.4 LTS
  • Java 1.8.0_45

Когда я запустил установщик в автоматическом режиме у пользователя, не являющегося root, установка прошла успешно. Однако для запуска деинсталляции мне потребовалось быть пользователем root.

Вот конфигурация для моего установщика:

Настройки установки для привилегий

Вот конфигурация для моего деинсталлятора:

введите описание образа здесь

Вот фрагмент журнала установки, показывающий, что действие «Запросить привилегии» прошло успешно.

 [INFO] com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction [ID 2776]: Execute action
   Property failIfNotRootUnix: false
   Property obtainIfAdminMac: false
   Property obtainIfAdminWin: true
   Property obtainIfNormalMac: false
   Property obtainIfNormalWin: false
   Property failIfNotObtainedWin: true
   Property allRequested: false
   Property failIfNotObtainedMac: true
   Property rollbackSupported: false
   Execute action successful after 2 ms
[INFO] com.install4j.runtime.beans.screens.StartupScreen [ID 15]: command: move 1 screens, executing actions, checking condition
[INFO] com.install4j.runtime.beans.screens.WelcomeScreen [ID 1]: Show screen
  

Вот фрагмент журнала для деинсталляции, показывающий, что действие «Требовать привилегии установщика» не выполнено из-за недостаточных прав.

 [INFO] com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction [ID 2779]: Execute action
   Property failIfNotObtained: true
   Property rollbackSupported: false
[ERROR] com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction [ID 2779]: Execute action not successful after 4494 ms
[INFO] com.install4j.runtime.beans.actions.misc.LoadResponseFileAction [ID 2778]: Rollback action
   Rollback action finished
  

Я что-то неправильно настроил?

Редактировать: Вот переменные в файле varfile, которые я передал в командной строке при запуске программы установки и деинсталляции:

 logLocation=/folder/something
storeLocation=/folder/something
storeSize$Long=1
nmx.webserver.port$Long=8466
nmx.sharedDir=/folder/something
nmx.licenceFileName=/folder/something
nmx.userDir=/folder/something
sys.adminRights$Boolean=true
sys.languageId=en
sys.programGroupDisabled$Boolean=true
  

Установщик и деинсталлятор были последовательно запущены моей тестовой программой под управлением обычного пользователя, то есть программа запустила установщик, а затем запустила деинсталлятор.

Комментарии:

1. Пожалуйста, проверьте, установлено ли значение sys.adminRights in .install4j/response.varfile на true . В этом случае установщик был запущен с полными привилегиями.

2. @IngoKegel Да, для него установлено значение sys.adminRights$Boolean=true . Теперь я в замешательстве, потому что я запускал как установщик, так и деинсталлятор в своих автоматических тестах. Если установщик смог получить необходимые права, почему не смог деинсталлятор?

3. Возможно, попробуйте еще раз с чистой установкой.

4. @IngoKegel что вы имеете в виду под clean installation ? Установщик и деинсталлятор были запущены в автоматическом режиме в рамках автоматизированных тестов. Он был установлен в чистую папку, и удаление было выполнено в той же папке.

5. Когда установщик запускается, процесс, похоже, имеет полные права администратора. У вас отключен пользовательский интерфейс во время работы установщика?