LINUX.ORG.RU

Как мэйнтейнеру пакета в голову стукнет.

phoen ★★
()
Последнее исправление: phoen (всего исправлений: 1)

Те что из репозитария ставятся в /, сторонние если юзер хочет может поставить в /home или в /.

MaxPower ★★
()

обычно, пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin, вспомoгательные файлы программ хранятся в /usr/lib, /usr/share, /home и т.д. Сторонние программы могут устанавливаться целиком в /opt

hikari
()

нормальные пакеты равномерно размазываются по файловой системе, а всё остальное — куда угодно.

xfilx ★★
()
Ответ на: комментарий от hikari

пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin

Вообще-то нет. В /usr/local идёт самосбор. Из пакетов туда вообще не ставят в нормальной ситуации.

AS ★★★★★
()

Что за дистрибутив у тебя? Вообще куда угодно могут устанвливаться, тут грань между системными и прикладными программами стерта и при установке «размазывается» по дереву (хотя бывают и исключения).

Kolins ★★★★★
()
Ответ на: комментарий от Egor_

чтобы не искать конфиг и исполняемый файл в новой жопе очередного изобретательного разработчика?

anonymous
()

Есть дистрибутивы, они разные в разных места установки разные, всем заведует менеджер пакетов 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-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

Открой пакет любой своей программы как архив и посмотри. Обычно раскидывается по /usr, но могу быть ньюансы.

einhander ★★★★★
()

Как правило исполняемые файлы в $PATH или туда симлинки. Пользовательские Конфиги в ~/.config или в ~/.local или даже просто в хомяк, системные конфиги могут быть прямо в /etc, вся остальная требуха или в /usr/* или в каталоге программы, если он в /opt. В любом случае могут быть исключения – appimage, flat и snap, это отдельный разговор.

anonymous
()

в соответствии со стандартом FHS,

для прикладных программ:

исполняемые файлы - в /usr/bin

библиотеки в /usr/lib

конфиги в /etc

разделяемые немодифицируемые данные в /usr/share

и т.д.

короче говоря, файлы одного типа и назначения помещаются в соответствующие директории, а не как в винде, всё в одну папку

Harald ★★★★★
()
Последнее исправление: Harald (всего исправлений: 1)
Ответ на: комментарий от Harald

всё в одну папку

В мамку, но не всегда так. Есть еще $env:ProgramData, $env:AppData и $env:DriverData. В линуксе тоже некоторые приложения устанавливаются в одну папку (/opt/папка), без всяких /usr и /etc.

anonymous
()
Ответ на: комментарий от leave

и каким образом эта ссылка отвечает на мой вопрос?
ссылка говорит что куда класть
мой вопрос был зачем вообще раскладывать по папкам? какой в этом профит?

Egor_
()
Ответ на: комментарий от anonymous

открываешь папку программы, ищешь там файлы .conf и исполняемый файл
если не находишь, то заглядываешь в подпапки config и bin
не сложно ведь, правда?

Egor_
()

man hier

в линукс сообществе в вк

Не ходи туда больше.

WitcherGeralt ★★
()
Ответ на: комментарий от Egor_

Шоб бардака не было, чтобы оптимизировать хранилище по безопасности, доступности на чтение/запись и занимаемому пространству.

Например, когда знаешь, куда программы точно писать не должны в процессе работы, эти директории можно выносить на отдельный раздел и монтировать его readonly. Можно монтировать корневой раздел по сети один на всех из одной шары, на всяких тонких клиентах. Можно запрещать выполнение из хомяка, в целях безопасности.

Harald ★★★★★
()

Читал статью что программы устанавливаются в корневой раздел «/» но потом нашел другую информацию что устанавливаются в «/home» в линукс сообществе в вк, так куда?

Пакет с программой это совокупность скриптов для установки и удаления программы и архива со всеми используемыми программой файлами, как то бинарники в /opt и /usr, каталоги для логов и специальных файлов в /var, дефолтные конфиги в /etc, разделяемые библиотеки в /lib и /usr/lib

В общем архив с программой "куда бы её не ставили" проще формировать от корня.

torvn77 ★★★★★
()
Ответ на: комментарий от Egor_

Чтобы исполняемые файлы открывались из консоли по имени файла, а не полному пути, чтобы разделяемый библиотеки могли подгружаться другой программой, чтобы man находил маны всех программ.

te111011010
()
Ответ на: комментарий от Egor_

За ночь подтверждения не нашел, но есть у меня предположение... Изначальный UNIX писала кучка программистов в университете и доступа в интернет у них не было, вот они и раскидали файлы как им было удобно: бинарники отдельно, либы отдельно. Потом появился интернет, набежали программисты и стали копировать их поведение, так оно докатилось и до нас.

Насчет докатилось. /usr был придуман, когда для установки программ в / не хватало место и надо было куда-то подпомнтировать еще один диск с аналогичной структурой фс. Современных дисков хватает чтобы поставить в / хоть все пакеты с установочных дисков debian (и еще место останется), но /usr на столько прижился и оброс историей, что никто и не пробует от него отказаться (хотя могли бы наверное).

Kolins ★★★★★
()
Ответ на: комментарий от Kolins

Не по теме треда, т.к. и так уже всё объяснили: почему ты пишешь / и /usr так, будто это две разные директории куда кладут программы? Так в / вообще не кладут. Это было бы глупо и совсем помоишно.
Может ты имеешь ввиду таким образом точки монтирования? Но тогда такой подход разделения тоже не канает. 99% установок линупса в моём воображении вообще не имеют отдельных разделов.

В общем читать это странно, я не могу распарсить и требую объяснений.

system-root ★★★★★
()
Ответ на: комментарий от Egor_

для удобства администрирования.
все конфиги системы в одном месте. для сохранения мне достаточно одной команды сжатия каталога /etc и вся конфигурация системы сохранена. плюс закидываешь в архив /home и листинг установленных пакетов и вот у тебя минибекап без бинарных файлов.
зная распределение использования файлов можно очень умно нарезать раздел - корень сделать ридонли чтоб ничего случайно не удалить, а каталоги с изменяемыми данными /var /home и иже с ними смонтировать из отдельного раздела в режиме r/w
и т.д. разделяй и властвуй

pfg ★★★★★
()
Ответ на: комментарий от Kolins

Насчет докатилось. /usr был придуман, когда для установки программ в / не хватало место и надо было куда-то подпомнтировать еще один диск с аналогичной структурой фс

Если выражаться коротко, но смачно, тут написана чушь собачья © Uncle_Theodore

gremlin_the_red ★★★★★
()
Ответ на: комментарий от system-root

Может ты имеешь ввиду таким образом точки монтирования?

Да.

99% установок линупса в моём воображении вообще не имеют отдельных разделов.

Это сейчас не имеет, я когда начинал изучать linux то читал всякие статьи конца 90-х итам на отдельные разделы выносили все: /var, /usr, /boot, /home, swap. Сейчас только /boot имеет смысл, когда загрузка с raid/lvm (хотя может я от жизни отстал и уже не актуально) и /home чтобы при переустановки свои данные не потерять.

Так в / вообще не кладут.

А откуда в /bin и /lib бетурся файлы? Это те же самые пакеты, который ставит тот же самый пакетный менеджер, что и в /usr. Хотя сейчас идет тенденция делать симпилки /usr/bin -> /bin...

Kolins ★★★★★
()

Многие программы от сурьезных компаний ставились в /opt

chenbr0
()
Ответ на: комментарий от gremlin_the_red

http://lists.busybox.net/pipermail/busybox/2010-December/074114.html

When the operating system grew too big to fit on the first RK05 disk pack (their root filesystem) they let it leak into the second one, which is where all the user home directories lived (which is why the mount was called /usr). They replicated all the OS directories under there (/bin, /sbin, /lib, /tmp...) and wrote files to those new directories because their original disk was out of space. When they got a third disk, they mounted it on /home and relocated all the user directories to there so the OS could consume all the space on both disks and grow to THREE WHOLE MEGABYTES (ooooh!).

Kolins ★★★★★
()
Последнее исправление: Kolins (всего исправлений: 1)

Уже ответили, но

Куда угодно.

В основном пакетный менеджер кладет в /usr, make install в /usr/local, shar-ы всякой проприетарщины в /opt.

lealxe
()
Ответ на: комментарий от Harald

Ща забавно будет если ему NixOS пооветовали, он такой тред читает и "Чё? Чё всё не так то. Да чтож такое то. Но ведь все говорят. Ну да блииначаааа! "

LINUX-ORG-RU ★★★★★
()
Ответ на: Уже ответили, но от lealxe

куда угодно только на лоховских системах :) умные никогда не смешивают раздел с возможностью записи и раздел с возможностью исполнения и т.д.
мне тута /home посоветовали монтировать с noexec - прикольно, защита от дурака. но херово когда запамятовал и не догоняешь почему только что скачанные бинари не запускаются….

pfg ★★★★★
()
Ответ на: комментарий от buratino

чтобы не писать PATH на 500 листов

имеет смысл сделать одну папочку и выкладывать туда симлинки ко всем исполняемым файлам, а сами исполняемые файлы будут лежать в папке своего приложения
я на винде именно так и делаю (правда, выкладываю .bat-файлы вместо симлинков, но это мелочи)

Egor_
()
Ответ на: комментарий от Egor_

это замедляет доступ, нужно два раза шариться по диску, сначала симлинк, потом бинарник

Harald ★★★★★
()
Ответ на: комментарий от leave

размазывание файлов по системе только усложняет «предсказание расположения файлов»
я считаю, что «все файлы одного приложения в одной папке» - более простой подход по части предсказания расположения

Egor_
()
Ответ на: комментарий от Egor_

хорошо что тебя не спрашивали при проектировании

Harald ★★★★★
()
Ответ на: комментарий от Harald

Шоб бардака не было

бардак - это когда файлы размазаны по системе
или мы по-разному понимаем слово «бардак»

чтобы оптимизировать хранилище по безопасности

повесь на исполняемый файл права «запись только для рута»

доступности на чтение/запись

то, что все файлы находятся в папке приложения, никак не мешает тебе (и не освобождает тебя от) правильного назначения прав доступа

и занимаемому пространству

да, бывает такое, что само приложение маленькое, а файлы данных к нему большие, и их имеет смысл хранить на разных дисках (напр, вынести файлы данных с SSD на HDD)
ну так замени подпапку data, где лежат большие файлы данных, на симлинк, указывающий на папку на твоём диске для больших файлов

Egor_
()
Ответ на: комментарий от te111011010

чтобы man находил маны всех программ

вместо того, чтобы загружать все man-файлы в специальную системную папку, можно оставлять man-файлы в папке приложения, но при установке приложения сообщать man-у о расположении man-файлов.
этот способ ничем не хуже

Egor_
()
Ответ на: комментарий от pfg

минибекап без бинарных файлов

то есть, если мне нужна последняя версия какого-то приложения, и я собираю его из исходников (в /usr/local/bin), то после восстановления из бэкапа (и установки всех пакетов по списку) моего приложения на месте не будет?
а имеет ли смысл вообще создавать «минибекап без бинарных файлов» с точки зрения размера? бинарники - это ведь не самая жирная часть системы

Egor_
()
Ответ на: комментарий от Egor_

А теперь представь, что у нас embedded девайс, у которого ROM память, с которой можно только читать, записать только один раз на заводе :) А писать только в RAM, содержимое теряется при перезагрузке. Ну и как ты со своими «все файлы программы в одной папке» выкрутишься?

Harald ★★★★★
()
Ответ на: комментарий от Harald

в папке приложения (лежащей на ROM-диске) будет подпапка data, являющаяся симлинком на RAM-диск

Egor_
()
Ответ на: комментарий от wandrien

я не эксперт
меня просто судьба занесла в странный город, где люди покупают десяток яиц и раскладывают дома каждое в свой отдельный холодильник, я спрашиваю зачем так сложно, мне в ответ показывают мануал «как рассовывать яйца по холодильникам», но никто не может дать чёткий ответ типа «это даёт следующие преимущества:…»
я получил только два внятных ответа:

  1. «основатели нашего города так делали, мы не знаем почему, но привыкли»
  2. «так легче администрировать холодильники»

я по-прежнему нахожусь в непонятках насчёт традиций этого городка, в котором не холодильники существуют ради яиц, а яйца ради холодильников )))

Egor_
()
Ответ на: комментарий от Egor_

Ага, ману скажем, где ман-страницы, менюшке приложений, скажем, где .desktop файлы, компилятору скажем, где хидэры, загрузчику бинарей скажем, где библиотеки, гимпу - где расширения, ядру - где модули, и так — шесть тысяч раз.

Тебе имело бы смысл что-то объяснять, если бы ты хотел что-то понять. Но так как ты и так уже все понял лучше всех остальных инженеров вместе взятых, объяснять ничего не требуется.

wandrien ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.