Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ответьте попунктно на ряд практических вопросов, касающихся переменных в Linux (подробности внутри)...

Tigran Tamazyan Мыслитель (5662), закрыт 2 года назад
Заранее извиняюсь за длинный вопрос! Но он имеет очень важное для меня практическое значение...

Файл /ETC/PROFILE отвечает только за переменные при удалённом подключении к компьютеру по ssh или если напрямую за ним сидеть и удалённо не подключаться,
export IMYA=Vasya
будет работать и локально?
Почему спрашиваю, потому что в Интернете на эту тему расхожее мнение.
На сайте losst автор статьи пишет, цитирую:
Системный файл profile. Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. Но они не будут доступны, при создании локальной терминальной сессии, то есть если вы просто откроете терминал.
И в комментариях уточняет, отвечая на вопрос, что речь идёт именно о доступе сугубо по ssh, но не локально.
Другой комментирующий пишет, что нет, он попробовал, всё доступно и локально.
С другой стороны для системных задач в статье указан файл /ETC/ENVIRONMENT, что в нём можно прописывать экспорт переменных окружения, и он будет доступен и локально, и удалённо. При этом в этой же статье написано, что для того, чтобы переменная работала по SSH есть .BASH_PROFILE, хотят тут же упоминается для этой же цели обычный /ETC/PROFILE
Ссылка на статью вот:
https://losst.ru/peremennye-okruzheniya-v-linux#etcprofile

При этом в видеолекции про переменные и окружения упоминается наоборот, что /ETC/PROFILE для редактирования окружения на системном уровне, а не сказано, что только для SSH, хоть и он в уроке подключался по ssh к Ubuntu с локального дистрибутива Arch Linux.
Ссылка на видеолекцию с таймкодом для экономии вашего времени:
https://youtu.be/X2vrqY6tQ3Q?t=608

Эта же статья оставляет больше вопросов, чем ответов о файле /etc/profile говоря сложные для начинающего грызуна гранита науки термины интерактивной и не интерактивной оболочки, что ещё больше запутывает:
https://devacademy.ru/article/razbiraiemsia-s-failami-etc-profile-i-etc-bashrc/

ПОДЫТОЖИВАЮ ВОПРОС:

1) /ETC/PROFILE отвечает только за удалённое подключение или за локальное тоже?

2) Если за подключение только по ssh, в чём отличие переменных, созданных в нём, и переменных, созданных в .BASH_PROFILE, который, если верить сайту losst, отвечает за ssh?

3) Если /ETC/PROFILE отвечает не только за удалённое подключение по SSH, но и за локальное подключение, чем он отличается от /ETC/ENVIRONMENT, который, если верить losst, отвечает и за локальное управление компьютером, и за удалённое по ssh.

4) Какой файл нужно редактировать, чтобы переменные наследовались для программ, которые установлены через apt install название_программы?
Лучший ответ
Карлсон Оракул (65593) 2 года назад
я написал во всякие файлы типа ~./.bashrc ~/.bash_profile и др.
В разных линуксах разное наличие / отсутствие.

echo started /home/USER/.bashrc
echo started /home/USER/.bash_profile
соответственно.

И теперь видно какой из них выполнился при заходе удаленно, локально и просто запуском терминала.
Сделай вывод переменных их каждого из них и все поймешь.
Tigran TamazyanМыслитель (5662) 2 года назад
Хорошо, а на счёт 4 пункта как понять унаследовалось или нет?
Карлсон Оракул (65593) Tigran Tamazyan, ну вот мне надо было прописать в LD_LIBRARY_PATH, сперва прописал в /etc/environment но это работало только для запуска в userspace и не работало для systemd, тогда прописал в /etc/ld.so.conf.d/myLD-PATH.conf и тогда сработало. Стало быть /etc/environment не всем процессам виден.
КарлсонОракул (65593) 2 года назад
для sudo или не sudo работает у меня
на этапе установки ничего не нужно, кроме правильного размещения исполняемых файлов.
Tigran Tamazyan Мыслитель (5662) Карлсон, я же не знаю, что там внутри происходит, поскольку я не на 100% уверен в свободности пакета, поэтому исхожу из тех данных, что предоставляет разработчик
Остальные ответы
Άηϑρέΰ ҂ Искусственный Интеллект (179801) 2 года назад
а ты просто проверь - если работает, пользуйся, иначе смотри другие варианты... а людям свойственно писать недостоверную информацию
Tigran TamazyanМыслитель (5662) 2 года назад
На кону слишком многое, чтобы направо налево проверять, потому что если внимательно почитаешь 4 пункт вопроса, от работы этой переменной зависит работа одной установленной программы, причём внешне это никак не заметишь, во всяком случае, с моим уровнем знаний, сработала или нет, переменная должна отвечать за отправку телеметрии.
Άηϑρέΰ ҂ Искусственный Интеллект (179801) Tigran Tamazyan, тут потратить час от силы, тем более если "на кону слишком многое" .. п. 4 имхо, относится к конфигам конкретного приложения
Похожие вопросы