Я разработал приложение для Debian и создал установочный пакет .deb, используя эквив-сборку. В контрольном файле, который я использовал для создания пакета, есть строка, запускающая скрипт postinst, setup.sh. В этом файле я попытался получить имя пользователя, используя несколько методов, в том числе:
USER=$(logname)
USER=$(who am i | awk '{print $1}')
Эти способы работают правильно, когда я пытаюсь использовать их как root в окне терминала. К сожалению, все они потерпели неудачу во время установки, и имя пользователя для входа в систему получено как "root". Это приводит к тому, что все пути в сценарии неверны, и сценарий завершается с ошибкой, в результате чего Software Center показывает сообщение об ошибке и останавливает установку.
Тем не менее, используя dpkg для установки пакета, как показано ниже, мое приложение было успешно установлено.
dpkg -i package-name
Итак, почему это происходит? Как правильно получить логин?