Не может запустить менеджер пакетов 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
,
Если вам нужен правильный способ запуска приложений с повышенными привилегиями, вот хорошая вики-статья, предлагающая хорошее работоспособное решение: