SVN_EDITOR не установлен при использовании sudo - PullRequest
2 голосов
/ 21 декабря 2010

Мне нужно использовать sudo для запуска команд svn в моем проекте. У меня SVN_EDITOR установлен как vi в моем собственном .bash_profile, а также в .bash_profile пользователя root, но когда я пытаюсь выполнить SVN-пропедит, я получаю

svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found

Каждый раз, когда я начинаю новый сеанс, я должен установить SVN_EDITOR. Это боль. Любые предложения о том, как / где я могу установить SVN_EDITOR навсегда? Это на CentOS 5.4.

Ответы [ 3 ]

4 голосов
/ 20 апреля 2011

Выполнение команд через sudo не запускает логин или «интерактивную» оболочку, поэтому добавление их в различные bashrc или профиль файлов ресурсов не поможет.

Как сказал DES, быстрый и грязный путь:

sudo env "SVN_EDITOR=$SVN_EDITOR" svn propedit svn:ignore .

Но, как прокомментировал Дероберт, лучшее и более постоянное решение - запустить sudo visudo для редактирования / etc / sudoers и добавить SVN_EDITOR к опции env_keep .

2 голосов
/ 21 декабря 2010

sudo очищает большую часть вашей среды перед выполнением команды. Это хорошая вещь и торговля ;. Быстрый и грязный обходной путь должен использовать env:

sudo env SVN_EDITOR=$SVN_EDITOR svn propedit svn:ignore .

Определение SVN_EDITOR в ~root/.bashrc должно работать, но лучшее решение - определить его в /etc/profile, чтобы каждый пользователь получил одинаковое значение.

0 голосов
/ 21 декабря 2010

~ / .bashrc

Насколько я помню, .bash_profile вызывается при соединении.(когда вы подключаетесь к машине по ssh) и .bashrc вызывается для каждого запуска процесса bash.Но я мог бы получить это задом наперед.

Centos - один из немногих дистрибутивов, которые строго соблюдают эти дни.Насколько мне известно.

...