← All posts tagged Синхронизация_$HOME_конфигов

Self-Perfection
конфиги Синхронизация_$HOME_конфигов такая_убунта Спокойно успешно понемногу мигрировал свои конфиги из $HOME в git, пока не попробовал их применить на убунточке. Внезапно оказалось, что на убунте .bash_profile не отрабатывает при графическом логине.
Ох.

Я почему-то думал, что usermod -s /bin/bash $(whoami) достаточно для того чтобы .bash_profile выполнялся в любых случаях, но нет, интернетики говорят ( mywiki.wooledge.org ), что даже .profile при графическом логине выполняться не обязан. У меня на арчике, .bash_profile отрабатывал из-за

$ file /bin/sh
/bin/sh: symbolic link to `bash'
и умного /usr/share/config/kdm/Xsession

Потом оказалось, что половина моего .profile была написана с использованием башизмов.
Упс.

Но, ладно, это, положим, мои косяки. Но потом оказалось, что убунта для работоспособности lesspipe предлагает всем (в /etc/skel) прописывать в .bashrc следующее:
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
ШТА?!

В более адекватных дистрибутивах типа арчика, это делается правильнее гораздо оптимальнее:
$ cat /etc/profile.d/lesspipe.sh
export LESSOPEN='|/usr/bin/lesspipe.sh %s'

Лишних форков разводить в стандартном конфиге, конечно, не хочется. Я могу завернуть этот блок в if [ -n "LESSOPEN" ], но это ж костыль!

Унификация оказалась несколько сложнее, чем я предполагал.
Self-Perfection
Git конфиги Синхронизация_$HOME_конфигов Надоело синхронизировать между своими машинами конфиги между $HOME. Куча мороки:
— Заводишь учётку на новой машине, стянешь туда .bashrc, а .vimrc забудешь
— Обновил конфиг на одной машине, а на другие оно почему-то само не попадает
— Банальное копирование может не сработать, если отличаются версии целевого софта. Я уже попадал, когда раскидал .vimrc с использованием слишком новых возможностей.
— Всякие нюансы связанные с тем, что на разных машинах хочется иметь конфиги слегка отличающиеся (местная специфика работы)

Попробую подойти к проблеме системно: все конфиги в git (заодно будет история с комментариями о том, что когда и зачем было добавлено!). При этом все конфиги разделю на файлы .конфиг и .конфиг_местный, последнии будет вызываться из .конфиг и будет содержать конфигурацию, специфичную для данной конкретной системы.

Понемногу мигрирую. В основном ок, но ~/.ssh/config никак include не поддерживает. :(