LINUX.ORG.RU

Пакеты и форматы (вопросы от новичка)

 , ,


1

3

Здравствуйте, товарищи! Я тут новенький, поэтому кратко о себе. С компом дружу более 35 лет, помню ещё компы с загрузкой игр с аудиокассет. Преимущественно общался с Виндой (ну и с MS-DOS вначале). С пингвином стал дружить лишь недавно. На ноуте уже лет пять как стоит Мята, пользуюсь не очень часто, но пользуюсь. В будущем планирую полностью перебраться на Линь, видимо на Debian. Параллельно время от времени изучаю Линукс как таковой. Тема за темой, не торопясь. И вот сейчас появилось свободное время, продолжил изучение. Взял тему пакетов и их форматов. Составил табличку (см. прикреп. файл … Не нашёл где тут добавляется картинка, так что вот ссылка на Гугл-диск: https://drive.google.com/file/d/1t2T8ahmIVYAJ7oBx6a2vska9Vm8Fx1aX/view?usp=sharing). Но. В интернете просто писец какой-то происходит. Чуть ли не каждый второй сайт путает понятия системы управления пакетами и пакетного менеджера. Открываешь какой-нибудь сайт, а там табличка и в графе «пакетный менеджер» написано DPKG (а это СУП!), а потом через запятую вообще flatpack (а это формат пакета!). Охренеть! И из-за этой вот путаницы я несколько дней потратил, чтобы эту табличку хоть как-то составить. Наверняка, в ней есть ошибки…

Мои вопросы:

  1. Посмотрите кому не лень табличку и определения в целом, всё ли верно? Подозреваю, что там немало неточностей, т. к. инфу рыл долго и мучительно «с сайта по нитке». В частности, у меня сомнения по поводу Slackpkg. Неужели, она не используется в Slackware? Уж больно похожи названия.
  2. Из таблички получается, что у Solus есть три пакетных менеджера - eopkg, snapd и flatpak. Причём, первый работает и с форматом flatpak, и с форматом snap, второй только со snap, а третий только с flatpak. Верно ли это?
  3. Заполните пробелы (красные знаки вопроса) в табличке.
  4. Правильно ли я понимаю, что tar.gz = TGZ, tar.xz = TXZ, а сами TGZ и TXZ - разновидности TAR?
  5. Бинарник и исходник это же разные понятия? Исходник это SRC, а бинарник это какое расширение\формат? Знаю, что в Линуксе расширения не важны, но для ориентира они всё же есть.
  6. Верно ли, что менеджеры APT, APM, Synaptic, Gnome software и Appgrid (т. е. все те, что относятся к системе DPKG) работают без проблем на любом дистрибутиве семейства Debian?

  1. https://docs.slackware.com/ru:slackware:slackpkg

  2. snap и flatpak есть практически в любом дистрибутиве, это «универсальные пакеты»

  3. pacman, zypper, emerge, в Slax не Slackpkg, и в OpenSuse тоже, eopkg

  4. tar - архиватор, xz/xz сжатие

  5. Бинарник скомпилированный файл, в unix не имеет расширения, аналог .exe, исходник, это кож программы https://github.com

  6. Да

По теме, викторина какая-то. Ты занимаешься полной чушью и знания такие тебе не нужны. Есть еще пол сотни дистрибутивов со своими пакетными менеджерами, которые в таблице не указаны.

Я бы накидал тебе еще и ссылок, но с телефона впадлу… во, читай зачитайся https://en.m.wikipedia.org/wiki/List_of_software_package_management_systems

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

Пакетный менеджер - это калька с английского. Он же СУП.

  1. Есть неточности.
  2. tar.gz = tgz. Это tar, запакованый gz, а не разновидность тар.
  3. Разные. Если речь про типы пакетов, то исходник - это файлы + инструкции, необходимые для создания бинарника. Бинарник - то, что попадет в систему при установке + инструкции для установки.
  4. В общем случае нет. Совсем без проблем не бывает.
undef ★★
()

tar.gz = TGZ, tar.xz = TXZ, а сами TGZ и TXZ - разновидности TAR

нет, это не разновидности tar, это разные алгоритмы сжатия поверх архива tar. утилита tar создает архивный файл tar, а потом вызывает соответствующую утилиту, которая сжимает этот файл

IvanRia
()

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

IvanRia
()
  1. Убунту работает на deb/apt, «семейство ред-хат» на rpm. Как уже выше писали, snap и flatpak ставятся на многие дистрибутивы. В snap и flatpak нет системных компонентов, хотя есть маргинальные дистры, которые пытаются их туда запихнуть. В Gentoo вместо пакетов с программами - «ебилды», где не содержится программа, а только информация откуда скачать ее исходник и как скомпилировать. Gnome Software по идее обертка над apt. Короче творят что хотят и болт клали на эти логические построения)
goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 2)

Параллельно время от времени изучаю Линукс как таковой.

Судя по тексту — пока ещё нет.

В будущем планирую полностью перебраться на Линь, видимо на Debian.

Выбор так себе, но уже что-то. Давай попробую сориентировать в ситуации. Линукс — это огромная глобальная тусовка; это огромная и категорически неоднородная система. Из этого вытекает первая и самая жуткая проблема для новичка: у него нет никаких шансов схватить суть.

Будет правильно думать, что линукс живёт и развивается по законам эволюции, поэтому созерцать его надо как живую природу, то есть получать удовольствие от редких оазисов прекрасного, не обращая внимание на тотальное уродство и безобразие.

Сразу скажу, движение от общего к сути — очень плохая затея. Гораздо эффективнее выбрать что-то и далее, отбросив всякое дистрохопперство, хорошенько освоить, обжить, заставить работать на себя и по возможности реализовать все свои хотелки. Где-то на этом пути многие твои сегодняшние вопросы будут закрыты или отпадут.

К сожалению тут возникает порочный круг. Как можно сделать правильный выбор, если не хватает знаний, а чтобы получить знания, надо сделать выбор?! Хорошего решения не существует. Тебе придётся сделать выбор опираясь на мифы и рекламу, отбросить сомнения хотя бы на какое-то приличное время (год-два), и приступить.

На закуску ещё одна плохая новость: у одного человека нет никаких шансов понять весь линукс, точно также как у него нет никаких шансов жить одновременно в нескольких местах, спать одновременно в разных постелях и тд.

От себя намекну. Когда все говорят, что нечто говно, присмотрись к этому явлению повнимательнее ;-)

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

Не нашёл кнопки, чтоб написать сообщение, можно только ответить на другое. В общем, спасибо всем за ответы. Буду разбираться. Тему пока не закрываю, может появятся встречные вопросы.

Don_Antonio
() автор топика
Ответ на: комментарий от papin-aziat

Когда все говорят, что нечто говно, присмотрись к этому явлению повнимательнее

Мдя. Я вот так навскидку не могу придумать совета хуже. В подавляющем количестве случаев, говно это всего лишь говно и окружающие это видят. О чём и говорят.

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

В подавляющем количестве случаев, говно это всего лишь говно

Что ж делать, если сарай из говна и палок. Тут главное не сдаваться. Например, прекрасный десктоп, он ведь находится в голове линуксоида, отнюдь не объективная реальность.

papin-aziat ★★★★★
()

В целом я, таки, разобрался. Как ни странно. Думал, будет в итоге больше вопросов, чем ответов. Но нет, всё более-менее улеглось в голове. Что осталось по мелочи:

Ты занимаешься полной чушью и знания такие тебе не нужны

Нужны. Долго писать, объяснять. Если интересно, напишу.

во, читай зачитайся

Там, кстати, тоже путают понятия backend-a и frontend-a. Но я, кажется, понял, почему так. Это зависит от дистрибутива - в некоторых (Дебиан, Убунту, Минт) разделение на СУП и менеджеры реально обосновано кодом и логикой, т. е. объективно существует, а в других этого разделения нет.

С бинарником значит, как в Винде, проще говоря? Скомпилированная прога, готовая к исполнению. А скриптовые проги не компилируются (это как язык Autohotkey на Винде). Только почему называется «бинарник»? Там ведь не единички и нолики, т. е. это не первичный машинный код? Или это таки он?

Какие СУПы в Slax и OpenSUSE?

Выбор так себе

Как вы можете оценивать выбор, если дистрибутив выбирается под цель, под задачи, а они у каждого свои? И какие они у меня я не говорил, следовательно оценить мой выбор как плохой или хороший невозможно из-за отсутствия необходимых входящих данных.

Сразу скажу, движение от общего к сути — очень плохая затея.

Я не собираюсь весь свой Линукс-путь так двигаться. Но для начала, только так и можно. Опять же, долго объяснять. Если надо, напишу подробнее.

Есть еще пол сотни дистрибутивов со своими пакетными менеджерами, которые в таблице не указаны.

А мне все и не нужны. Только основные. Для понимания и погружения в тему.

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

если дистрибутив выбирается под цель, под задачи, а они у каждого свои?

Дык я ж не протестую, но мнение имею.

Но для начала, только так и можно.

Для начала хватит rpm+dnf vs dpkg+apt.

papin-aziat ★★★★★
()
Ответ на: комментарий от Don_Antonio

Доброго утречка! Ещё вопросы по теме:

  1. Если у исполняемого файла нет расширения, то как вы узнаёте, какой из файлов в папке является исполняемым? Не будешь же смотреть свойства по каждому. Полагаю, представление в виде таблицы решает вопрос, или как?
  2. Пакет – это архив. Это работает как и в Винде? Т. е. в Винде есть, например, RAR или ZIP. Я могу разархивировать RAR, получить файлы из архива. Затем эти же файлы заархивировать уже как ZIP. Работает ли это с пакетами Линукса, т. е. могу ли я разархивировать, к примеру, DEB и потом его файлы заархивировать как TAR?
  3. Перечень основных форматов пакетов: DEB, RPM, TAR (TGZ, TXZ, TBZ, TLZ), SNAP, FLATPAK, APK. Менее популярные: ZST, LZM, PiSi, MO, PUP, PET. Все ли я назвал?
  4. Ну и из предыдущего моего письма (про СУПЫ Slax и OpenSUSE и др.).
Don_Antonio
() автор топика
Ответ на: комментарий от papin-aziat

Для начала хватит rpm+dnf vs dpkg+apt

Не, я о другом. Видимо, надо объяснить всё-таки. Я обучаюсь всегда в два основных этапа: 1. Получение общих системных (академических) знаний о предмете (индуктивный принцип), 2. Применение знаний на практике, эксперименты, опыты, (дедуктивное обучение). Т. е. я не могу оперировать понятиями, не имея о них базового знания. Это как с написанием программы: нужно сначала объявить переменную, сказать компу, какого она типа, и только потом комп сможет её применять. Если объявить ему, что переменная «а» имеет тип abrakadabra, он скажет, что не знает такого, и вся программа работать не будет. Или это можно сравнить с тем, что я отправляюсь в лес с волками, имея лишь перочинный ножик. Куда лучше иметь некую элементарную базу (хотя бы кожаную броню, охотничий нож и фонарик) - та база, которую я должен получить ДО того, как начну идти дедуктивным путём (от меньшего к большему). И уже потом, в процессе прогулки, можно найти броню покрепче, пистолет, лазер и т. д.. У меня так во всём. Где бы ни работал, чем бы ни занимался, всегда сначала изучаю общую структуру. Это академический подход. Он более медленный, но имеет преимущества. Например, позволяет при наличии проблемы более точно предугадать её источник и быстрее решить её (т. к. структурные знания позволяют не гадать «что это может быть», а сразу сказать, что «тут, скорее всего, дело в том-то». Собственно, именно поэтому, этот принцип лежит в основе любого институтского образования. И я не раз убеждался в том, что это работает. Ну а когда я пойму, что в голове сложилась базовая структура того, что такое Линукс и с чем его едят, можно будет уже экспериментировать и дальше уже идти точечно.

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

С бинарником значит, как в Винде, проще говоря?

Принципиальное отличие линукса от винды в подходе к скриптам.

Скомпилированная прога, готовая к исполнению. А скриптовые проги не компилируются (это как язык Autohotkey на Винде). Только почему называется «бинарник»? Там ведь не единички и нолики, т. е. это не первичный машинный код? Или это таки он?

Бинарник это:

  1. Заголовочная информация. В винде это обычно PE, в линуксе обычно Elf. Определённые мета-данные.

  2. Информация о динамическом связывании. Грубо говоря - какие библиотеки и функции эта программа использует. При запуске эти динамические библиотеки ищутся, загружаются в память и проводится связывание с кодом программы.

  3. Собственно тот самый машинный код.

В этом плане и винда и линукс работают примерно одинаково.

Бинарник наверное потому, что всё вышеперечисленное хранится в бинарном виде и если открыть в блокноте, то увидишь в основном белиберду.

Хотя в винде есть скрипты, но тебе при их запуске нужно вручную указывать программу-интерпретатор. explorer позволяет это делать автоматически, но это не уровень ОС. В линуксе на уровне ОС есть поддержка скриптов, когда первой строчкой в файле написано #!/some/path\n, то запускается этот самый /some/path с параметром-именем файла, причём это работает полностью прозрачно для всех программ. Это принципиальное отличие.

Доброго утречка! Ещё вопросы по теме:

Если у исполняемого файла нет расширения, то как вы узнаёте, какой из файлов в папке является исполняемым? Не будешь же смотреть свойства по каждому. Полагаю, представление в виде таблицы решает вопрос, или как?

У каждого файла есть права доступа. read/write/execute. Если проставлено право execute, то его можно выполнить. Права можно просмотреть командой ls -l

Пакет – это архив. Это работает как и в Винде? Т. е. в Винде есть, например, RAR или ZIP. Я могу разархивировать RAR, получить файлы из архива. Затем эти же файлы заархивировать уже как ZIP.

В линуксе традиционно отличают архивацию от сжатия. Архивация это tar. Можно представить себе его как zip без сжатия. Т.е. это некие заголовки с именами файлов и некоторой другой информацией плюс содержимое файлов и всё это в одном файле. file.tar. Иными словами на входе множество файлов и каталогов, на выходе один файл. А есть программы для сжатия. gzip, bzip2, xz. Они просто сжимают данные. Т.е. на входе один файл, на выходе один файл. А вместе tar + gz, например, делают то же, что делает zip или rar.

Работает ли это с пакетами Линукса, т. е. могу ли я разархивировать, к примеру, DEB и потом его файлы заархивировать как TAR?

Архивировать ты можешь что угодно как угодно, но стандартные утилиты работают с конкретными форматами и твой debtar воспринимать откажутся.

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

У каждого файла есть права доступа

Это я понимаю (что можно в свойствах посмотреть). Но не будешь же каждый файл просматривать, когда у тебя перед глазами папка с сотней файлов. Как на вид-то отличить исполняемый от неисполняемого? Вот в Винде я по расширению сразу вижу, какой файл надо запускать, чтобы запустить программу.

Архивировать ты можешь что угодно как угодно, но стандартные утилиты работают с конкретными форматами и твой debtar воспринимать откажутся.

Не понял, почему откажутся. При таком переформатировании что-то теряется?

А вместе tar + gz, например, делают то же, что делает zip или rar.

Тут всё понятно, спасибо. А что на счёт DEB? Это архивация или сжатие? Или и то и другое?

Мало ли в каких форматах программы попадаются.

Спасибо за поддержку, но дело тут не в поиске конкретной практической причины. Речь о фундаментальном подходе, о наличии системного представления. Это и есть backend знаний о предмете, или точнее сказать - background (который не ищет конкретной практической пользы здесь и сейчас, а даёт некую уверенность на будущее). Что-то мы с этим в философию ушли. Неужели так уж редко в Линуксе этот подход встречается?

Табличку доделал. Осталось название СУП для Slax. Прошерстил офиц. руководство - ничего нет там. Ну, видимо, нет названия у этой логики, просто «Slax package management logic», бог с ней.

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

Это я понимаю (что можно в свойствах посмотреть). Но не будешь же каждый файл просматривать, когда у тебя перед глазами папка с сотней файлов. Как на вид-то отличить исполняемый от неисполняемого? Вот в Винде я по расширению сразу вижу, какой файл надо запускать, чтобы запустить программу.

ls -l покажет в табличном виде всё. В целом есть некие общепринятые наименования. Скомпилированные программы не имеют расширения и имеют имена в нижнем регистре (есть файлы вроде README или LICENSE, которые тоже не имеют расширения, но их пишут в верхнем регистре и обычно очевидно, что это не программа, а просто какой-то текст). Скрипты - по-разному, некоторые не имеют расширения, но чаще всего имеют расширение вроде .sh, .py и тд. Но в любом случае это лишь набор рекомендаций, ничего не мешает использовать любые расширения. В конечном счёте надо смотреть на права доступа.

Не понял, почему откажутся. При таком переформатировании что-то теряется?

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

Тут всё понятно, спасибо. А что на счёт DEB? Это архивация или сжатие? Или и то и другое?

deb это архив в формате ar (это ещё один архиватор, что-то вроде tar, просто другой формат). Внутри него лежат два файла - control.tar и data.tar. Они могут быть опционально сжаты, тогда будут называться, например, data.tar.gz. Внутри control.tar лежат несколько файлов с мета-информацией о пакете и скриптами. Внутри data.tar лежат файлы, которые будут созданы при установке. Вообще про всё это можно почитать на wiki, вроде достаточно подробно расписано.

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

Может я не понимаю вопроса. Программы рассчитаны на определенный формат

Конечно, программа рассчитана на определённый формат. Например, APT в Debian рассчитан на формат DEB. А у меня есть только в формате tar.gz (это, кстати, реальная ситуация - драйвер принтера у меня есть только в tar.gz, а нужен в DEB). Ну и вот, можно ли разархивировать tar.gz и потом заархивировать уже как DEB? И соответственно APT подсунуть уже тот формат, на который он рассчитан. Я к тому, что можно ли вот так запросто конвертировать один формат в другой, для другого дистрибутива, или есть нюансы и невозможно абсолютно точно передать содержание пакета в ином формате, пользуясь только способом «распаковать-запаковать»?

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

Да, все это можно делать.

Есть утилита alien, которая предназначена именно для этого - брать пакеты одного формата, и перепаковывать как пакеты другого.

То есть, можно взять пакет от Debian и перепаковать его как rpm для Alt Linux. Даже дошло до того, что в Alt Linux есть надстройка над пакетным менеджеом - epm, которая автоматически перепаковывает чужие пакеты для ряда приложений в rpm для Alt, и потом этот rpm ставится как родной.

Если интересуют технические тонкости, можешь почитать про alien и про опыт его использования.

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

Я в целом завершил знакомство с темой пакетов. Уточняю по итогам изучения темы. Верно ли я понял, что…

  1. …Пакет - это архив, скомпилированный под конкретную ОС.
  2. …Тарбол - это тоже архив, но ещё не скомпилированный. Это сборник всех необходимых исходников в формате TAR.
  3. …Исходник - исходный текст программы (один файл, в отличие от содержимого тарбола, где их много).
  4. …Бинарник - скомпилированный исходник (один файл, в отличие от содержимого пакета, где их много).
  5. …Есть три типа установки программ: 1) из пакетов (Debian, Red Hat и произв.), 2) из архивов исходников (тарболов) (Slackware, Arch, Manjaro и др.), 3) скачивание и сборка на месте (Gentoo и произв.).
  6. …Бинарный пакет - это пакет, собранный из бинарников.
  7. …Небинарный пакет - пакет, собранный из исходников.
Don_Antonio
() автор топика
Ответ на: комментарий от Don_Antonio

Хммм…

Пункты 6 и 7 какие-то странные.

Бинарный пакет - это то же что в пункте 1.

Небинарный - не встречал такого термина. Есть Source-пакет, который ставится путем сборки на компьютере пользователя.

Применительно к дебиану или убунте - в репозитории, deb это бинарные пакеты, deb-src - это source-пакеты.

Теперь про тарболы. Они бывают не только с исходниками, но и уже собранные, бинарные. Ставятся на любой дистрибутив путем распаковки в /opt.

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

Что-то у тебя на выходе опять мешанина)

Смотри:

  • Программы пишут программисты на разных языках программирования. Эти языки более-менее похожи на человеческий, но компьютер их не понимает. Он понимает только бинарный (машинный) код в виде нулей и единиц. Поэтому исходный код на языках программирования нужно переводить в бинарный код.
  • Исходный код в бинарный можно перевести компилятором — тогда на выходе будет бинарный файл, бинарник, понятный только компьютеру. Или же это может делать интерпретатор, причём интерпретатор переводит исходник в бинарный код прямо «на ходу», в процессе чтения исходного кода. Это позволяет запускать программу напрямую из файла с исходным кодом, не создавая бинарник. Такой файл с интерпретируемым кодом называется скриптом.
  • Чтобы распространять софт было удобнее, их файлы группируют в «пачки», которые называются пакетами. Помимо бинарников и скриптов, в пакете есть ещё файлы с иконками, документацией и прочими штуками, которые нужны для работы программы.
  • То, как софт «нарезан» на пакеты, во многом определяет характер дистрибутива Linux. Где-то пакеты жирнее и вмещают больше файлов, где-то пакеты мельче. В пакетах разных форматов (rpm, deb, …) по-разному хранятся файлы программ (бинарники, скрипты, иконки, метаданные, …), этим форматы отличаются друг от друга.
  • Есть source-based дистрибутивы вроде Gentoo, у которых пакет это архив с исходниками + описание, как нужно собирать (компилировать и настраивать) программу из исходного кода. В binary-based дистрибутивах сборкой программ занимается не пользователь, а мантейнер (грубо говоря, разработчик дистрибутива).
alex1101
()
Ответ на: комментарий от alex1101

Что касается форматов tar.gz, tar.xz и прочих «tar» — это просто в Линуксах такой подход, который тянется из UNIX: архиваторы вроде gzip и xz занимаются только сжатием и могут работать только с одним файлом, один архив — один файл. Чтобы сжать сразу несколько файлов, их сначала нужно объединить в один с помощью отдельной программы, которая называется tar. То есть, tar.gz можно буквально читать как «объединили несколько файлов в один tar-файл и сжали архиватором gzip»

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

Одно не исключает другого, в source-based можно ставить бинарные пакеты, в binary-based можно собирать пакеты из исходников. В том же Debian это можно делать командой apt build.

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

Есть source-based дистрибутивы вроде Gentoo, у которых пакет это архив с исходниками

Я читал и не раз, что у Дженту нет пакетов вообще, там только инфа по скачиванию и установке.

Но если есть такое понятие как source-пакет, значит это пакет, собранный из исходников, т.е. тарбол.

Либо, в интернете врут и у Дженту всё же есть пакеты (как раз эти source-пакеты).

В общем, с терминологией беда. Одни пишут одно, другие другое.

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

Я читал и не раз, что у Дженту нет пакетов вообще, там только инфа по скачиванию и установке.

Ну как бы да. Но по мне так это игры в буквоедство без практического смысла. Вполне можно говорить, что в Дженте есть пакеты, ничего страшного не случится. Тем более, portage создаёт несжатые бинарные пакеты в процессе сборки программ, когда собирает в «пачку» скомпилированные бинарники и прочие файлы перед тем, как перенесёт их в системную иерархию файлов. А может создавать и настоящие сжатые бинарные пакеты, для этого есть отдельная опция.

alex1101
()
Ответ на: комментарий от papin-aziat

Выбор так себе, но уже что-то.

Для изучения как раз хороший, тут меньше всяких гуевых настроек специфичных к ДЕ, как в убунтах и больше универсальных текстовых конфигов. Репозиторий достаточно большой, чтобы ставить ПО без подключения дополнительных. ПО более менее оттестировано. Если освоить дебиан, то движение в сторону арча-генты или rhel будет проще, не говоря уже о туче дистров основанных на дебиане.

einhander ★★★★★
()

Не смотрел, но скорее всего ты не привел ещё системы управления пакетами специфичными для языков программирования. Поэтому на типичном Линукс десктопе будет системный менеджер специфичный дистрибутиву, snap\flatpak и менеджер специфичный для какого-нибудь языка программирования.

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

В общем, с терминологией беда. Одни пишут одно, другие другое.

Вот тут ты очень прав. Именно так, с информацией по этим вопросам полная беда. Я не представляю как можно разобраться, не имея опыта работы со всеми этими дистрибутивами.

Касательно source пакетов в Debian. Они есть не только в дебиане, а вообще в любом дистрибутиве, потому что бинарные пакеты собираются из сорс-пакетов.

Про Gentoo. Чтобы не путаться и не скатываться в полную кашу, лучше считать «пакетом» в Gentoo - ebuild файл, то есть скрипт сборки. Тарбол с исходниками - это не пакет, это архив с исходниками, не более того.

А теперь удивись еще больше - в Gentoo есть и бинарные пакеты, такие же как в дебиане. В интернетах как всегда все переврали.

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

Но по мне так это игры в буквоедство без практического смысла. Вполне можно говорить, что в Дженте есть пакеты

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

Don_Antonio
() автор топика

В общем, ладно. Пойду думать. Снова. Вы опять поломали мою стройную систему, только я решил, что закончил изучать эту тему. Ну, это хорошо, коли по делу правите. Но всё равно, понадобится теперь какое-то время, чтобы перестроить схему в голове.

Я вернусь.

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

Я не знаю насколько получится, но попробую все же максимально просто и структурированно изложить.

Представим это все с точки зрения процесса - от исходников у программиста до установленного на твоем компьютере приложения.

В БИНАРНОМ дистрибутиве:

  1. Разработчик приложения выкладывает тарбол с исходниками.

  2. Мейнтейнер пишет скрипт сборки пакета. Этот скрипт + тарбол от разработчика = сорс-пакет. Мейнтейнер помещает сорс-пакет в репозиторий.

  3. Мейнтейнер запускает сборку скрипта по пункту 2, приложение компилируется, потом упаковывается в архив формата deb, rpm или подобное - это бинарный пакет.

  4. Бинарный пакет помещается в репозиторий, откуда ты его и устанавливаешь.

В SOURCE-BASED дистрибутиве:

Пункты 1, 2 те же.

  1. ТЫ, а не мейнтейнер, запускаешь сборку сорс-пакета у себя на компьютере. После сборки приложение может устанавливаться сразу, а может получаться бинарный пакет и помещаться в локальный репозиторий на твоем компьютере. В Gentoo делается и так и так, в зависимости от опций команды установки, которые ты задал.

ТО ЕСТЬ:

ОБЩЕЕ у всех:

  • есть тарбол с исходниками от разработчика, мейнтейнер пишет для него сборочный скрипт.

РАЗНОЕ:

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

  • у source-based дистрибутивов этот скрипт запускаешь ты сам, сборка идет на твоем компьютере, то что собралось - ставится.

РЕАЛЬНОСТЬ:

  • практически со всеми дистрибутивами, ты можешь ставить как готовые бинарные пакеты, так и сорс-пакеты путем сборки на своем компьютере. Различают дистрибутивы по основному, предпочтительному методу установки.

То есть - в Debian, Ubuntu, Fedora в норме ты ставишь бинарные пакеты. Если очень надо - есть сорс-пакеты.

В Gentoo в норме ты ставишь source-пакеты. Если очень надо - есть бинарные пакеты.

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

никакая не стройняшка, он тот ещё уродец

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

papin-aziat ★★★★★
()
Ответ на: комментарий от alex1101

На первое время тебе нужно понять только одну вещь: весь софт ставь только через пакетный менеджер (менеджер пакетов, магазин приложений). Windows-подход в виде «скачал программу из интернета и установил» в Linux возможен, но КРАЙНЕ нежелателен, к тому же ещё и требует много красноглазия.

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

ОБЩЕЕ у всех

А как быть с тем, что разработчик живёт не в вакууме, но тоже в какой-то экосистеме, мыслит соответственно (скажем шляпник-корпораст), тогда не окажется ли, что данный исходник ближе к rpm, чем к любому другому варианту? Я задаюсь вопросом: верна ли схема, где deb&rpm надстройка над source?

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

Почему «пытаются»? Софт разрабатывают люди и только люди, а не компьютеры или природа. Опенсорс отличается от коммерческой разработки только тем, что у разработчиков здесь намного меньше обязательств — их никто не вынуждает чинить такие-то баги, запиливать такие-то фичи и следовать таким-то правилам. Поэтому опенсорс больше похож на коммунизм, чем на эволюцию.

alex1101
()