Почему через терминал запускается ненастроеный SublimeTest?
Здравствуйте!
Сегодня встретился с такой проблемой - у меня ОС - Ubuntu 13.10 работаю в графическом редакторе sublime text3. Также много работы в терминале ubuntu. И вот в чем проблема: когда я открываю sublime text через терминал (~$ subl) - все отлично, но когда делаю тоже самое, только под root (sudo subl), то открывается какая то непонятная версия этого редактора (без установленных пакетов). Проверил в /usr/bin/subl - там все правильно, а именно:
1. subl лучше заменить на alias alias subl="sublime-text"
> P.S. подскажите - это только у меня такая проблема?
2. Это не проблема. Так задуманно.
Вообще, предполагается что редактировать файл надо sudo -e /path/to/file
Редактор устанавливается через SUDO_EDITOR VISUAL EDITOR (man sudo подробнее описывает как это происходит).
1. строку с alias в ~/.bash_aliases (на худой конец в ~/.bashrc)
2. тут есть ньюансы.
- касательно переменных окружения в ubuntu можно почитать тут.
- отредактировать файл через sublime text можно так: SUDO_EDITOR=sublime-text sudo -e /path/to/file
или задать SUDO_EDITOR как переменную окружения (~/.profile~/.pam_environment).
- про sudo и переменные окружения отдельная тема. Если кратко, то вообще есть опции -E и -H, но лучше сначала прочитать гайд по sudo/sudoers и чётко представлять чем черевато их неправильное употребление (Why user should never use normal sudo to start gra...).
> Пакеты ставятся в какое-то определенное место, общее для всех пользователей (/opt/чтототам).
Пакеты системы - да. Пакеты sublime ставятся в ~/.config/sublime-text-3/Installed\ Packages/
Если воспользуетесь советом, то рано или поздно sublime - root непременно нагадит в этот каталог.
> под root (sudo subl)
root - отдельный пользователь со своим хомяком (/root).
Настройки у sublime хранятся для каждого пользователя отдельно. Самый простой способ "починить" такое поведение - сделать как-то так:
rm -r /root/.config/sublime-text-3
ln -s /home/user/.config/sublime-text-3 /root/.config/sublime-text-3
Пакеты ставятся в какое-то определенное место, общее для всех пользователей (/opt/чтототам).