@Linda-chan

Linda-chan

Линда Кайе
Linda-chan

Дата рождения: 01.11.1983

Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.

https://www.lindachan.net

10 я читаю 59 меня читают
15079 постов
25810 комментариев
Linda-chan
17 Feb 2017

Как заставить RVM работать не только в запущенном Баше, но и за его пределами, в тех же Иксах? А то Баш при запуске читает ~/.bashrc и запускает специальный скрипт, после чего все переменные окружения красиво устанавливаются, и нужная версия Руби подменяет системную (если есть). Иксы же при логоне запускают ~/.profile и даже выполняют указанный там скрипт, но переменные окружения так и не устанавливаются. В итоге работает только системная версия Руби, устаревшая лет пять назад == Приходится городить костыли с промежуточными скриптами, которые врукопашную устанавливают нужные переменные и запускают правильную версию Руби. Та же фигня с неинтерактивными пользователями вроде www-data в рамках вэб-сервера. У них вообще нет ~, а при системной установке RVM для них не выполняется обновлятор переменных окружения == И при запуске от суперпользователя (скажем, через крон) – RVM большими красными буквами не рекомендуют запускать от рута =_= Короче, пичалька.

17 Feb 2017

никак. разве ты только будешь через apt-update-alternatives ковырять или чем-то подобным.
Из противного - ты же понимаешь, что rvm за тем и придуман, чтобы локальненько в песочнице, никому не мешая поковырять что-то.
Если ты меняешь системный руби, то будь готова к граблям в виде внезапно отвалившейся херни под другую версию писанную.

17 Feb 2017

и ты не запускай rvm от рута в кроне, ты выставляй юзера в crontab для таски.

17 Feb 2017

Про песочницу я в первый раз слышу.

#ceesp/3 в ответ на /1
17 Feb 2017

А если скрипт делает что-то, что требует прав рута?

#ceesp/4 в ответ на /2
17 Feb 2017

я таким sudo NOPASSWD раздаю ровно для этих операций.
примерно так

consul    ALL = (logstash) NOPASSWD: /usr/bin/lsof

и благодаря этому юзер консула может поглядеть pid процесса logstash, который висит на каком-то udp-порту.

PORTNET_PID=$(sudo -u logstash lsof -F p -i udp:3243,3244 | cut -b 2-)

+google suid bit (юзать крайне осторожно).

Комментарий был отредактирован в 17:01:53 17.02.2017
#ceesp/5 в ответ на /4
17 Feb 2017

ну ладно-ладно, ещё rvm-образные тулзы полезны для того, чтоб ворох разных кусков говна под разные версии со своими несовместимыми наборами гемов хоть как-то уживался на одном серваке.

#ceesp/6 в ответ на /3
17 Feb 2017

Хых. Ладно, буду дальше юзать грязный хак.

#ceesp/7 в ответ на /5

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.