в какую директорию устанавливаются программы на linux
Куда устанавливаются программы в Ubuntu
Многих новичков, недавно установивших Linux и только начавших разбираться в устройстве этой замечательной операционной системы, как и меня, в свое время, интересует вопрос: куда же устанавливаются программы в Ubuntu, да и вообще, в любом дистрибутиве Linux. Файловая система Linux очень сильно отличается от Windows и это в первое время сбивает с толку.
Мы привыкли, что все программы и их файлы в Windows находятся в системном каталоге Program Files и System32, или если не в нем, то хотя бы в одном из подкаталогов. Но в Linux все намного сложнее. Здесь файлы программ, как правило, распределены по всей файловой системе. Так куда устанавливаются программы в Linux? Как найти все файлы программы? Как удалять ненужные программы? Все это мы рассмотрим в данной статье.
Куда устанавливаются программы в Ubuntu
Большинство программ, устанавливаемых с помощью стандартного пакетного менеджера распределяются по файловой системе в эти папки. Вам, наверное, интересно, как система определяет какие файлы куда копировать. Она и не определяет, это задает разработчик во время сборки пакета. Попробуйте открыть deb пакет как архив. Кроме служебных информационных файлов, касающихся установки вы там увидите структуру папок напоминающую корневую ФС Linux, это и определяет какие файлы где будут находиться. В последнее время грань четкого разделения файлов по папкам немного стерлась, появились папки /usr/bin для исполняемых файлов, а кэш некоторые программы вообще хранят в домашней папке пользователя, но традиционные Linux сервисы, такие как Samba, Apache, Ngnix и многие другие четко придерживаются стандартной структуры.
Давайте разберем на примере как распределяется программа в файловой системе. Возьмем, например, тот же сервер apache. Чтобы узнать куда были скопированы файлы программы воспользуемся утилитой dpkg.
www-servers/apache-2.2.31 (/usr/sbin/apache2)
www-servers/apache-2.2.31 (/etc/init.d/apache2)
www-servers/apache-2.2.31 (/etc/logrotate.d/apache2)
www-servers/apache-2.2.31 (/var/cache/apache2)
www-servers/apache-2.2.31 (/usr/lib64/apache2)
www-servers/apache-2.2.31 (/usr/share/apache2)
www-servers/apache-2.2.31 (/etc/apache2)
www-servers/apache-2.2.31 (/usr/include/apache2)
www-servers/apache-2.2.31 (/etc/conf.d/apache2)
www-servers/apache-2.2.31 (/var/log/apache2)
Как видите, все файлы на своих местах.
Но из этого правила есть исключения. Например, многие проприетарные программы и игры устанавливаются полностью в одну папку, так же как и в Windows. Для таких программ есть папка /opt. Посмотрим, например, на Crossover:
Надеюсь, эта статья помогла вам разобраться с вопросом куда устанавливаются программы в Ubuntu.
Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе. (РЕШЕНИЕ) [Решено]
Раз говорят, что эта тема будет актуальной, то воспользовавшись гуглем скопипащу сюда то, что каждый мог бы найти и сам.
— Корневая файловая система специфична для каждой машины (обычно она хранится на локальном диске, хотя это мог бы быть ramdisk или сетевой диск) и содержит файлы, которые являются необходимыми для загрузки системы. Содержимого корневой файловой системы достаточно для загрузки в однопользовательском режиме. Именно эта файловая система используется при загрузке до тех пор, пока не будут смонтированы другие файловые системы. Она также содержит инструментальные средства для ремонта поврежденной системы и для восстановления потерянных файлов из резервных копий.
— Файловая система /usr содержит все команды, библиотеки, man-страницы, исходные тексты и другие неизменяемые файлы, необходимые для нормальной работы системы. Никакие файлы в /usr не должны быть специфическими для любой конкретной машины, и при этом они не должны измениться при нормальном использовании. Это позволяет файлам быть разделенными по сети, что может быть практично, так как это сохраняет дисковое пространство (могут легко иметься сотни мегабайт в /usr) и упрощает администрирование (только машина, на которой хранится /usr, должна быть изменена при модификации прикладной программы, а не каждая машина отдельно). Даже если файловая система находится на локальном диске, она может быть установлена только для чтения, что уменьшит возможность искажения в случае отказа.
— Файловая система /var содержит файлы, которые изменяются в ходе работы системы. Например, там лежат каталоги буферов для почты, новостей, печати и т.п., файлы протоколов, форматированных man-страниц и временные файлы.
— Файловая система /home содержит все домашние каталоги пользователей системы, то есть, все реальные данные системы. Отделение пользовательских каталогов от системы упрощает резервирование данных. Если пользователей много, эта файловая система может быть разделена на несколько (например, /home/students и /home/teacher).
Хотя различные части выше были названы файловыми системами, это не значит, что они фактически находятся на отдельных дисках. Они могут храниться на одном диске, если речь идето небольшом сервере или личном однопользовательском компьютере. Дерево каталогов может быть также разделено по-другому, в зависимости от того, насколько большие диски использованы, и как распределено место на них для различных целей, тем не менее, важно, чтобы все стандартные имена работали; даже если, скажем, /var и /usr фактически на том же самом разделе, имена /usr/lib/libc.a и /var/log/messages должны работать, например, перемещая файлы из /var в /usr/var, и делая /var ссылкой на /usr/var.
Структура файловой системы в Unix группирует файлы по их назначению, то есть, все команды находятся в одном месте, все файлы данных в другом, документация в третьем и так далее. Альтернативный вариант группировал файлы согласно программе, которой они принадлежат, то есть, все Emacs-файлы были бы в одном каталоге, весь TeX в другом, и так далее. Проблема с последним подходом состоит в том, что это делает трудным совместно использовать файлы (каталог программ часто содержит статические, общие, изменяющиеся и личные файлы), и иногда даже находить файлы, например, man-страницы в огромном числе мест, благодаря чему поиск их программой просмотра сильно осложняется.
Корневая файловая система
Файловая система root должна быть небольших размеров, так как она содержит важные файлы и команды. Чем меньше объем файловой системы и чем реже она подлежит изменениям, тем меньше вероятность ее повреждения. Если система root повреждена, то обычно это означает, что начальная загрузка компьютера невозможна (кроме отдельных методов, например при помощи дискет).
Файловая система дистрибутива имеет архитектуру классической файловой системы ОС Linux с единым корневым каталогом, обозначаемым символом обратной косой черты («слэш») — /.
Ниже приведено описание основных каталогов верхнего уровня.
Хотя многие файлы имеют обычный текстовый формат, некоторые из них имеют собственный. Существует много программ, которые не только преобразуют такие файлы в формат, доступный для чтения, но и предоставляют некоторые функции. Например, программа free считывает файл /proc/meminfo и преобразует значения, указанные в байтах, в килобайты (а также предоставляет некоторую дополнительную информацию).
Статья честно потырена тут во имя Свободной Информации!
Куда устанавливаются программы в линуксе?
Читал статью что программы устанавливаются в корневой раздел «/» но потом нашел другую информацию что устанавливаются в «/home» в линукс сообществе в вк, так куда?
Как мэйнтейнеру пакета в голову стукнет.
Те что из репозитария ставятся в /, сторонние если юзер хочет может поставить в /home или в /.
обычно, пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin, вспомoгательные файлы программ хранятся в /usr/lib, /usr/share, /home и т.д. Сторонние программы могут устанавливаться целиком в /opt
Если вкратце, то куда угодно.
нормальные пакеты равномерно размазываются по файловой системе, а всё остальное — куда угодно.
кстати, а какой смысл в таком равномерном размазывании?
пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin
Вообще-то нет. В /usr/local идёт самосбор. Из пакетов туда вообще не ставят в нормальной ситуации.
Что за дистрибутив у тебя? Вообще куда угодно могут устанвливаться, тут грань между системными и прикладными программами стерта и при установке «размазывается» по дереву (хотя бывают и исключения).
чтобы не искать конфиг и исполняемый файл в новой жопе очередного изобретательного разработчика?
кстати, а какой смысл в таком равномерном размазывании?
Есть дистрибутивы, они разные в разных места установки разные, всем заведует менеджер пакетов apt в Debian, pacman в Arch, dnf в Fedora и так далее, соотвецтвенно форматы пакетов разные. Достаточно знать как пользоваться менеджером в любимом тебе дистрибутиве и всё.
Чаще всего программы устанавливаются в /usr/bin/ или в /usr/local/bin есть пользовательские каталоги для этого в особых случаях
/.local/bin/ например. Сторонее проприетарное ПО или же то которое не хочется совать в систему ставят уже руками в /opt/ На самом деле вариантов ещё много, у каждой цели установки свой смысл, просто иди и где то читай про это. И да порой конечно есть излишества.
В любом случае если не городить что-то самому то используй менеджер пакетов который в 99% случаев всё ставить в /usr/bin/ Что бы те было понятнее usr это User System Resources почти program files как в винде, только там один каталог где всё в кашу, а тут есть ещё дополнительное дробление и всё на свои полочки кидается и если знаешь что для чего всегда заранее знаешь что и где искать.
Есть ещё /bin это системные программы наиболее важные для функционирования системой. (Не совсем так, но считай так и есть)
Что бы ещё было понятнее, есть разные типы файлов в одной программе картинки, документация, примеры, конфигурационные фалйы, библиотеки и исполняемые файлы, при установке всё это расфасовывается не в 1 место, а в разные в зависимости от типа файла и его предназначения. И программа установленная как бы интегрируется с системой, сливается с ней в одно целое, а не как в винде в отдельном каталоге всё в кучу. И у того и у того есть и минусы и плюсы.
| Существует расхожее мнение, что процесс установки программ в Linux сложнее, чем в Windows или Mac OS. Чтобы развеять эти мифы, мы подготовили руководство, раскрывающее четыре универсальных метода инсталляции программного обеспечения в современных дистрибутивах Linux. В качестве введения мы предлагаем информацию о ряде отличительных особенностей Linux, о которых важно знать при установке новых программ. Для полноты картины мы приводим примеры с использованием командной строки, но чаще всего в ее использовании нет необходимости. Обычно для установки достаточно пары кликов по пиктограмме пакета, ввод пароля и подтверждение установки. |
Ключевые отличия Linux от Windows
О Зависимостях
О правах администратора
Четыре способа установки ПО в Linux
Звездочкой «*» с произвольным разрешением обозначается исполняемый файл приложения. Он может представлять собой как готовое к работе приложение, так и установочный пакет. Возможно, потребуется запустить эти команды от имени администратора.
Преимущества: относительная универсальность, простота в установке
Недостатки: установка и использование в обход менеджера пакетов системы, возможные сложности с удалением программы, необходимость создавать ассоциации файлов и ярлыки вручную
Вывод: рекомендуется к использованию только в случае отсутствия других вариантов
Q: Как собирать пакеты из исходного кода? A: Если вы загрузили Tarball, распаковали его и получили директорию со множеством файлов, среди которых есть файлы с именами readme и install, то, скорее всего, это исходные коды программы. Часто архив с исходными кодами имеет имя вида abc-0.8.7.tar.gz, где abc – имя программы, а 0.8.7 – ее версия. В самом банальном случае для установки программы требуется несколько простых шагов.
1. Создаем директорию для исходных кодов программы, помещаем туда архив и распаковываем его командой:
tar xfzv abc-0.8.7.tar.gz
2. Конфигурируем приложением командой
./configure
В ряде случаев скрипта конфигурации configure нет, и шаг можно пропустить.
3. Дождавшись, пока конфигурирование закончится, можно запускать устанавливать приложение командой:
make && sudo make install
4. Для удаления приложения следует воспользоваться командой:
sudo make uninstall
Для выполнения названных операций в системе должен быть установлен компилятор (обычно gcc), а также все необходимые библиотеки. Иногда во время установки возникают ошибки, и наилучшим способом их разрешения является поиск информации о них в Интернете.
Преимущества: предельная гибкость при конфигурировании приложения, возможность редактирования исходников программы перед установкой, возможность компиляции максимально производительно приложения.
Недостатки: возможны проблемы с Зависимостями, cпособ требует уверенного знания системы, медленный и трудоемкий способ установки программ, возможные сложности с удалением программы (необходимо хранить директорию с исходниками), необходимость создавать ассоциации файлов и ярлыки вручную
Вывод: мы настоятельно НЕ РЕКОМЕНДУЕМ собирать приложения из исходных кодов, если их дистрибутивы есть в репозитории вашей системы. Это позволит сэкономить время и обеспечить лучший контроль над системой в целом. Однако если вы хотите получить максимально производительный пакет или просто нет других вариантов, то этот способ для вас.
Преимущества: возможность установки каждого пакета по отдельности
Недостатки: возможны проблемы с Зависимостями
Преимущества: высокая скорость установки, простота установки, предельная актуальность и совместимость между собой пакетов
Недостатки: требуется доступ к Интернету или полное собрание содержимого репозиториев на локальных носителях
Установка программ на не системный раздел
Соответственно, когда лин встанет рядом с виндой, нужно, чтобы часть программ, ему предназначенных,устанавливалась как раз на большой хард также, как и программы для винды.
Какие есть способы безболезненного и менее муторного создания такой системы хранения программ на лине?
В общем случае, это невозможно.
кстати, а перенести корень и слинковать нельзя? Там с UID будут бока?
ТС, можно в директорию /орт инсталлить, но это геморрой и не всегда возможно.
При компилянии программы из сорцов, собственно перед самим процессом компиляния ты можешь указать в конфигурационном файле, куда ее ставить.Это единственный способ.
Я бы сказал с текущими дистрибутивами искоробочно невозможно.
Какие есть способы безболезненного и менее муторного создания такой системы хранения программ на лине?
Как workaround могу предложить после установки перенести самые тяжелые каталоги на другой винчестер и смонтировать соответствующие папки (каталоги) с помощью mount bind.
Какой дистрибутив GNU/Linux?
Что мешает перенести все файлы пакета на другой раздел и наделать симлинков? Можно это делать скриптом.
Эт не винда с её минимально необходимыми 30гб.
Возможно, можно использовать mount bind, можно использовать aufs3 для /usr, можно /usr вынести в отдельный раздел, да много способов, в этом сила и гибкость GNU/Linux.
Это не скажется на работоспособности программ?
Не скажется, но от этого оно не становится хорошей практикой.
+1. И сама идея какая то. Виндовая))))
соорудить на SSD раздел для /usr никак?
В случае неразделенной ФС, да. Но, к счастью, у нас есть варианты: можно смонтировать каталог (bind mount тут не при делах), физически находящийся на другом носителе или даже в Сети.Можно делать симлинки. Можно использовать контейнеры.
По 60 гб должно хватить винде и линуксу. Под home выдели место на другом диске. Надо смотреть куда там игры свои данные ставят, но обычно в home.
Сам софт занимает очень мало, много занимают данные.
У меня в пк стоят SSD на 128 гигов, и два харда на 2Тб и 500Гб.
У меня SSD на 128 гигов, там /boot и / (/home на HDD, музыка, фото и фильмы в отдельной помойке на сервере), на рутовой фс занято 20% и 80% свободно, поэтому вопрос «установка программ не на системный раздел» не стоит. Да, оффтопиком не пользуюсь, но если бы и пользовался, 64 гигов тоже бы хватало с большим запасом: было бы занято 40% и 60% свободно.
Что за программы ты ставишь для которых не хватает 128 гиг??















