Noob здесь: у меня проблема, когда я получаю доступ к своему серверу через SSH, $ PATH является правильным
root@ks391320:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Но когда я открываю свой сервер через сеанс XRDP и иду в терминал, он показывает неправильный путь :
root@ks391320:~# echo $PATH
/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin
И это создает проблему, потому что, когда я пытаюсь установить что-то с помощью «Установщика пакетов», он показывает эту ошибку (среди прочих)
dpkg: warning: 'ldconfig' not found in PATH
command-line
gui
paths
Иван Кастелланос
источник
источник
/etc/environment
!1
Общесистемный путь по умолчанию определен в
/etc/environment
. Во-первых, убедитесь, что установлено правильное значение. Для справки, вот мой, который совпадает с установкой по умолчанию:2
Если
/etc/environment
это нормально, но у вас все еще есть проблемы, вы можете переопределить стандартную переменную PATH в~/.bashrc
. Например, у меня есть это в моем .bashrc, который добавляет каталог в мой PATH, если и только если он существует и еще не находится в моем PATH:Так как на скриншоте видно, что вы включили root-логины, не забудьте также установить root .bashrc. (Кстати, поскольку root не может войти в систему по умолчанию в Ubuntu, эта конфигурация предположительно менее проверена и может быть связана с вашей проблемой.)
3
Если первые два метода не сработали, проверьте, что ваш XRDP-клиент делает что-то экзотическое. Если это так, вам придется либо настроить его для нормальной работы или определить способ обойти это.
Обновить
Я немного осмотрел систему. Вы можете найти все места в вашей системе, которые указывают PATH, с помощью следующей команды (
sudo
она есть, потому что некоторые файлы/etc
не читаются обычными пользователями):Я думаю, что можно игнорировать многие из этих мест, что приводит к следующей команде:
Один файл, который выглядит возможным (хотя я действительно не знаю об этом слишком много)
/etc/login.defs
. Вы могли бы взглянуть на это.Кроме того, вы также можете создавать свои точечные файлы:
источник
gksudo gdebi-gtk /full/path/to/package.deb
? Я нашел это немного придирчивым. Если так, то он должен наследовать среду, из которой он запущен.Полное раскрытие: я не использую Ubuntu ... но у меня была та же проблема с Debian.
xrdp запускает /etc/xrdp/startwm.sh (если только Ubuntu не изменил это местоположение). Я добавил эту строку:
в начало /etc/xrdp/startwm.sh и PATH теперь настроен правильно.
Для Ubuntu, добавив
к началу /etc/xrdp/startwm.sh может сделать то же самое.
источник
Это на некоторое время поставило меня в тупик.
/etc/environment
не является сценарием оболочки, поэтому вы не можете назвать его как единое целое. Что мне помогло, так это редактирование скрипта менеджера сессий xrdp "sesman" в pam. Я добавил строку «сессия» в мой/etc/pam.d/sesman
файл:Это заставляет менеджер сеанса загружать
/etc/environment
файл при входе в систему.источник
В теории добавление
будет работать, но это не так. Я просто положил его вверху моего .bashrc, чтобы исправить проблему
источник
Благодаря предыдущим ответам я пришел к такому решению:
Может быть не самый оптимальный, но работающий (Ubuntu 12.04).
источник
@ Джон: Я полагаю, что вам нужно проверить ваш /etc/xrdpstartwm.sh - первые строки в моей книге гласят:
Это означает, что если существует файл / etc / X11xinit / xinitrc, этот файл будет выполнен вместо этого - и это не сильно поможет в добавлении
в /etc/xrdpstartwm.sh. :-)
/ На герц
источник