Не может запустить менеджер пакетов synaptic в Ubuntu 18.04.1

Я установил synaptic через терминал, но не нашел его при поиске, поэтому я удалил его (также через терминал) и попытался установить его через менеджер пакетов, я подумал, что это самый безопасный способ, поэтому я искал его, нашел его и нажал на него, он требует пароль пользователя и ничего не происходит после того, как я попытался открыть synaptic через терминал, все заработало и программа открывается (без запроса пароля пользователя) с таким кодом ошибки:

Gtk-Message: 18:14:50.057: GtkDialog mapped without a transient parent. 
This is discouraged.

И всплывающее сообщение говорит:

Starting "Synaptic Package Manager" without administrative privileges

  You will not be able to apply any changes, but you can still export
  the marked changes or create a download script for them.

Сейчас я использую Ubuntu 18.04.1, и я новичок в этом мире с открытым исходным кодом, поэтому я подумал, что кто-нибудь может объяснить мне, что произошло, и помочь мне исправить это, спасибо.

1 ответ

Это "особенность" Wayland, которая предотвращает запуск программного обеспечения GUI через root с помощью sudo. Вы можете обойти это, запустив

xhost +si:localuser:root

после входа в систему. Если вам часто нужно использовать приложения sudo, вы можете поместить эту команду в скрипт в ваших автозагрузках.

Если вы используете Wayland (кто-то может оценить, работает ли он Wayland, введя эту команду в терминал echo $XDG_SESSION_TYPE), и даже новая версия X (по-видимому) препятствует выполнению приложения с привилегированными правами пользователя GUI по умолчанию из-за проблем безопасности, связанных с таким вариантом использования (ссылка: https://doc.ubuntu-fr.org/wayland, "Почему" раздел 1, извините по-французски). 'gksu' или 'gksudo' не входят в стандартный дистрибутив Ubuntu, и их не следует использовать предпочтительно. Чтобы временно запустить приложения с графическим интерфейсом с привилегиями root, кто-то может отправить эту команду в терминале:

xhost +si:localuser:root

Затем запустите приложение (в нашем случае synaptic) обычным способом.

ПРИМЕЧАНИЕ. Приведенная выше команда позволит запускать привилегированные приложения в течение текущего сеанса Linux.

Не рекомендуется вставлять его в .bashrc,

Если вам нужен правильный способ запуска приложений с повышенными привилегиями, вот хорошая вики-статья, предлагающая хорошее работоспособное решение:

https://wiki.ubuntu.com/Wayland/gks

Другие вопросы по тегам