Программное обеспечение

Как устроена файловая система в Линукс ? Как она устанавливает программы ?

Как устроена файловая система в Линукс ? Просто интересует как Линукс может качать любое приложение и устанавливать его через командую строку, чисто с помощью какой - то ссылки, и интересно почему в виндовс так нельзя ? Я уже прочитал что в линуксе все приложения видны как файлы, а виндовсе как-то по другому, но можете привести какую-то аналогию или привести пример? Вот я например привык как в виндовсе, если устанавливаешь какое - то приложение, то держишь все ее комплектующие в какой - то специально для нее выделенной папке, но в линуксе, оно как - то по т*пому как мне кажется разбросано и меня это сильно напрягало. Разве неудобно когда твое приложение, программа в специально отведенной папке и комплектующие не лежат как попало в какой - то корневой папке? Лично я представляю диск, как шкаф, в винде для каждой одежды выделен шкаф, а в линуксе, как будто такого шкафа нет и одежда разбросано по всему дому. Как юзверь винды с самого рождения, я решил прибраться в новом доме под названием Линукс Убунту, и пытался очистить дом и положить в шкаф. То же самое я пытался сделать в Линукс, и у меня получилось. Я создал специальную папку для одной программы, и поместил все ее внутренности туда, но теперь пропал ярлык приложение и для того чтобы его запустить придется заходить в корневую папку куда я перекидывал, как в винде чисто ярлык выкинуть не получится так она не запускается. Попробовал я ее установить по другому, по методу гугла, просто вставить ссылку и установить через командную строку предоставив автоматический выбор установки приложения, ярлык приложения появился, но вот свои конечно установленное приложение разбросало как попало. Я что - то много чего написал, надеюсь вы поймете суть основного вопроса. Если не хотите обьяснять, можете скинуть ссылку где это написано, иначе я гуглю как файловая система линукс, выходит вообще не то что нужно.
То, о чем ты говоришь, к файловое системе отношения не имеет =)

То, что тебя смутило, принято называть пакетными менеджерами. В Ubuntu по умолчанию используется пакетный менеджер apt и устроен он примерно следующим образом. Где-то в интернете находится сервер (или несколько) с набором программ, к которым apt имеет доступ. Такие хранилища прогармм принято называть репозитариями.
Это очень похоже на то, как работает Google Play в смартфоне.

Программы размещены в виде специальных архив в формате .deb, который содержит все необходимые для работы самой программы файлы, информацию о необходимых для работы программы зависимостях и инструкцию по разархивированию. Когда ты вводишь в консоль sudo apt install ты как бы говоришь компьютеру "С привелегиями суперпользователя запусти программу apt, и с её помощью найди в репозитарии, скачай и распакуй нужный мне пакет согласно содержащейся в нём инструкции". И вот именно эта инструкция по разархивированию тебя и смущает =) Архив будет распакован не так, как хочешь ты, а так, как написано в инструкции по разархивации =)
К слову говоря, в Windows устроено отчасти похоже. Когда ты скачиваешь установочный exe-пакет, он точно также представляет из себя инструкцию по распаковке архива для "программы установки и удаления программ" (или как она там называется в Windows), и точно также занимает не только ту директорию, которую ты указал, но и помещает файлы в дополнительные директории.

На самом деле я бы порекомендовала тебе не заморачиваться по этому поводу, apt довольно хорошо следит за порядком в системе без непосредственного участия пользователя. Но если всё-таки это оскорбляет твои эстетические чувства, то ты можешь просто отказаться от использования пакетных менеджеров, а скачивать все программы самостоятельно из интернета в tar-архивах. Или в формате appimage. Тогда ты сможешь полностью контролировать расположение всех используемых тобою программ =)
Алексей Юрьевич
Алексей Юрьевич
10 007
Лучший ответ
"Просто интересует как Линукс может качать любое приложение и устанавливать его через командую строку" - этим занимается не файловая система, а пакетный менеджер. В каждом дистрибутиве Linux он свой.
Виталий Ляхов
Виталий Ляхов
81 484
Александр Турков В каждом линуксе он по разному, или суть дело не меняется ?
Так в винде программы тоже разбрасывают свои файлы по всяким appdata, programdata и прочим папкам. Мало того, они ещё и в реестре срут. Да и устанавливать через терминал программы в винде тоже можно, для этого есть PowerShell
В Линуксе по сути то же самое, только называется по другому. Программы ставятся в /usr/bin или /usr/sbin (аналог Program Files в винде), все их параметры и настройки в /usr/share (аналог appdata и programdata в винде). А необходимые для работы библиотеки в /usr/lib (в винде все библиотеки хранятся в system32). Всё просто.
Александр Турков теперь в прицнипе более или менее понимаю, а что значит в реестре срут?) В линуксе такого нет ?)
1 - качает также как браузер скачивает страницы когда ты их открываешь - аналогия такая

2 - потомучто в линахе помойка начинается с /
Cергей Манылов
Cергей Манылов
8 165
пакетный менеджер занимается установкой, распределением и настройкой различных пакетов и библиотек.
A_L_E_X_E_I !
A_L_E_X_E_I !
170