Взаимосвязь пакетов (Не могу понять главную идею)

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Rohan
Сообщения: 170

Взаимосвязь пакетов

Сообщение Rohan »

Люди подскажиет почему в Linux к примеру при установке я вибираю, нужные мне пакеты, иногда даже одну небольшую программу, но оказывается чтоб она работала надо еще уйму пакетов поставить, и в итоге после устанвки это дело очень много начинает весить. Я не могу понять главную идею - почему в Масдае не так. Какие плюсы подобная система дает.
И еще слышал что вод FreeBSD иксы очень быстро работают, быстрее чем под Linux так ли это?
Спасибо сказали:
Аватара пользователя
mitya
Сообщения: 54

Re: Взаимосвязь пакетов

Сообщение mitya »

Эти дополнительные пакеты - библиотеки которые использует программа для своей работы. Программы под Windows в большинстве случаев включают нужные библиотеки внутри (статическая компиляция), а в Линуксе немножко другая ситуация. Большинство нужных библиотек ставятся отдельно (динамическая компиляция). Плюсы такого подхода - несколько программ используют одну и ту же библиотеку, но она ставится в систему только один раз. Тем самым, можно получить приличную экономию места. Примеры таких библиотек - gtk, qt, ncurses.

И еще слышал что вод FreeBSD иксы очень быстро работают, быстрее чем под Linux так ли это?

Да-да, а если пингвин с демоном будут мочиться, то демон его уделает. :)
Спасибо сказали:
boot
Сообщения: 289

Re: Взаимосвязь пакетов

Сообщение boot »

В винде почти всегда каждая прога "носит с собой" все необходимые библиотеки.Получается,что все необходимое для работы с ней уже есть и морочиться с поиском чего-либо не нужно,но размер софта увиличивается(иногда значительно).В линуксе все наоборот,библиотеки устанавливаются для многих программ,их используют совместно.По этой причине программы для линукса в основном небольшие и получается спокойно качать их с сети даже модемом.Но часто бывает из-за зависимостей нужно установить кучу библиотек и всего прочего для работы мааленькой проги.Это основной недостаток системы пакетов rpm,где все зависимости пакетов привязаны "жестко",что и приводит к неудобствам(иногда значительным).
Спасибо сказали:
Rohan
Сообщения: 170

Re: Взаимосвязь пакетов

Сообщение Rohan »

То есть подобная система наоборот экономит место на HD ? Я думал наоборот...
Большинство дистрибутивов распространяются именно в этих rpm как я понял.
Конечно система хорошая, но я к примеру решил удалить блютус компоненты, и система мне за компанию предложила потереть еще и e-mail клиент :(
А часто бывают нужны для установки программ пакеты не входящие в дистрибутив? Или как правило такого не бывает?
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Взаимосвязь пакетов

Сообщение Valerius »

(boot @ Суббота, 12 Марта 2005, 16:16) писал(а):Но часто бывает из-за зависимостей нужно установить кучу библиотек и всего прочего для работы мааленькой проги.Это основной недостаток системы пакетов rpm,где все зависимости пакетов привязаны "жестко",что и приводит к неудобствам(иногда значительным)

Какой же это недостаток? Если для работы проги НУЖНЫ эти библиотеки, то как же ты её запустиш без них? :)
Другой вопрос, что иногда (кстати я такого практически не встречал) попадаются пакеты с "лишними" зависимостями - это просто ошибка майнтейнера, но и тогда есть простое решение --nodeps, если канешно ты хорошо понимаеш что и для чего нужно.

Valerius добавил в 12.03.2005 16:41

(Rohan @ Суббота, 12 Марта 2005, 16:27) писал(а):А часто бывают нужны для установки программ пакеты не входящие в дистрибутив? Или как правило такого не бывает?
Если ты ставиш прогу из репозитория своего дистра, то все необходимые пакеты ты должен найти или там же или в дистрибутиве, а если это сборка "от Васи Пупкина", то она может потребовать что-то чего ты в рпмке для своего дистра и не найдёш.
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
boot
Сообщения: 289

Re: Взаимосвязь пакетов

Сообщение boot »

Какой же это недостаток? Если для работы проги НУЖНЫ эти библиотеки, то как же ты её запустиш без них? smile.gif
Другой вопрос, что иногда (кстати я такого практически не встречал) попадаются пакеты с "лишними" зависимостями - это просто ошибка майнтейнера, но и тогда есть простое решение --nodeps, если канешно ты хорошо понимаеш что и для чего нужно.

Ну да,если какая-то либа реально_нужна,то естесственно обновляться необходимо.А насчет "лишних" зависимостей,то это увы встречается довольно часто,хоть и не в прямом смысле.Например,меняется идеология сборки пакетов и обновлять приходится добрую половину дистра(это я о сизифе).Тот же --nodeps не панацея.Да,всё хорошо работает,но начинает материться апт,пока не удалишь "неправильный" пакет - сиди без установки чего-либо.Например,у меня дрова к принтеру требуют libttf.so.3,а у меня уже *so.4.Ему нужно токо 3,хоть и пашет все нормально - пришлось в угоду апту зверски распаковать дрова cpio и покидать по каталогам.Конечно можно поставить две версии libtiff,но если покрче будут такие зависимости вся охота пропадет чего-то устанвливать :D .А сизиф так вообще...Впрочем что я говорю,щас как придут гентушники и как понарассказывют про rpm,они это дело любят :megalol:
РПМу малось "независемее" стать бы и "жить станет лучше,жить станет веселей" :D
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Взаимосвязь пакетов

Сообщение Valerius »

(boot @ Суббота, 12 Марта 2005, 16:59) писал(а):Да,всё хорошо работает,но начинает материться апт,пока не удалишь "неправильный" пакет - сиди без установки чего-либо.

Это одна из фич, которая мне в Альте жутко не понравилась, в Мандрейке же ставь что хочеш и как хочеш, и после этого спокойно пользуйся рпмдраком.
Точно также если помняется идеология сборки в каком-нибуть другом (не рпм-басед) дистре, то будут те же проблемы.
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Взаимосвязь пакетов

Сообщение t.t »

(Rohan @ Суббота, 12 Марта 2005, 16:27) писал(а):А часто бывают нужны для установки программ пакеты не входящие в дистрибутив? Или как правило такого не бывает?
Зависит в первую очередь от размера самого дистрибутива. Если он однодисковый, то, естественно, почти любая сторонняя программа потяне за собой что-то ещё, чего на этом диске нет. А если же дистр на 10-15 дисков, как, скажем, дебиан, то с большой вероятностью всё, что нужно программе (кроме, конечно, специфических библиотек, написанных специально под неё), уже будет на этих дисках.
(Valerius @ Суббота, 12 Марта 2005, 16:41) писал(а):Какой же это недостаток? Если для работы проги НУЖНЫ эти библиотеки, то как же ты её запустиш без них?
Давайте флейм "rpm vs другие системы управления пакетами" здесь разводить не будем. Всем известно, что менее гибкая система зависимостей -- это основной недостаток rpm. Пример:
(boot @ Суббота, 12 Марта 2005, 16:59) писал(а):Например,у меня дрова к принтеру требуют libttf.so.3,а у меня уже *so.4.Ему нужно токо 3,хоть и пашет все нормально - пришлось в угоду апту зверски распаковать дрова cpio и покидать по каталогам.
В deb-пакете, вероятнее всего, такая зависимость (обратите внимание на фразу "хоть и пашет всё нормально") была бы прописана как libttf >=3. Это я просто аргументирую свой ответ, а продолжение темы, если таковое последует, просьба вынести за пределы этого топика.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Взаимосвязь пакетов

Сообщение Valerius »

(t.t @ Суббота, 12 Марта 2005, 19:01) писал(а):Давайте флейм "rpm vs другие системы управления пакетами" здесь разводить не будем.

ообщето сама тема касается пакетов, поэтому обойти такой вопрос ну никак нильзя :) и помойму никто пока здесь ничего не "развозит"? речь идёт именно о фактах.
(t.t @ Суббота, 12 Марта 2005, 19:01) писал(а):В deb-пакете, вероятнее всего, такая зависимость (обратите внимание на фразу "хоть и пашет всё нормально") была бы прописана как libttf >=3

Вот именно об этом я и говорил! То что пакет составлен с не совсем правильными зависимостями, ещё не о чём не говорит. Кстати, в рпм тоже можно указывать версии в виде >=, = и <=
И то что дистрибютор часто не указывает >=, говорит только об одном - он хочет чтобы эта система была максимально стабильной, ведь кто может гарантировать, что новая будущая версия либы будет полностью совместима с предыдущей? Никто, даже сами разработчики :) поэтому поставить такое условие означает обречь пользователя на ситуацию, когда все зависимости полностью удовлетворены, но прога не работает.
Моё мнение - рпм не есть идеал. Но если пользоваться родными пакетами а не совать в систему что ни попадя и всегда удовлетворять зависимости, он вполне себя оправдывает.
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Взаимосвязь пакетов

Сообщение alv »

(Rohan @ Суббота, 12 Марта 2005, 15:14) писал(а):И еще слышал что вод FreeBSD иксы очень быстро работают, быстрее чем под Linux так ли это?


Нет, это не так. Сами по себе Иксы всегда и везде работают примерно одинаково. Другое дело - десктопы и оконные менеджеры, но это больше зависит от конкретной сборки, чем от системы.
Спасибо сказали:
Аватара пользователя
Vladislav
Сообщения: 383
ОС: Debian Sid

Re: Взаимосвязь пакетов

Сообщение Vladislav »

Вобще то идея с зависимостями очень неплоха, и в большинстве случаев реализована также на уровне. Но бывают исключения, связанные с руками сборщиков этих самых пакетов. Попадаются пакеты в которых вместо рекомендованных к установке пакетов, они указаны как обязательные и т.д. Отсюда и попадает мусор в систему. Но, как правило, - это встречается редко. В любом случае вам всегда оставляется возможность пересобрать пакет по своему усмотрению.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Взаимосвязь пакетов

Сообщение alv »

(Vladislav @ Понедельник, 14 Марта 2005, 10:52) писал(а):Вобще то идея с зависимостями очень неплоха,

Это ИМХО мягко сказано - без этой идеи ни одна система пакетного менеджмента существовать не может (иначе она не будет системой).
(Vladislav @ Понедельник, 14 Марта 2005, 10:52) писал(а):и в большинстве случаев реализована также на уровне. Но бывают исключения, связанные с руками сборщиков этих самых пакетов. Попадаются пакеты в которых вместо рекомендованных к установке  пакетов, они указаны как обязательные и т.д.


Не столько с руками - сколько с их представлениями "как надо".

И вот тут мы возвращаемся к альтернативе - зависимости, описанные внутри пакета или зависимости во внешней ко всем пакетам базе данных. Речь ведь идет о мягких зависимостях - зависимость от glibc и Господь Бог отменить не в силах:-) Что проще - в текстовом редакторе перешерстить один файл на предмет исключения зависимостей от, скажем, gpm, или отдельно истреблять их в каждом индивидуальном пакете?
Это именно вопрос, а не утверждение:-))

Ну а на худой конец всегда есть вареные яйца - опции типа force, nodeps и тому подобное.
Спасибо сказали:
Rohan
Сообщения: 170

Re: Взаимосвязь пакетов

Сообщение Rohan »

Вот именно это, как правило и отпугивает начинающих пользователей в том числе и меня.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Взаимосвязь пакетов

Сообщение alv »

(Rohan @ Понедельник, 14 Марта 2005, 18:57) писал(а):Вот именно это, как правило и отпугивает начинающих пользователей в том числе и меня.


На самом деле ничего страшного тут нет. Представьте себе Windows и ее программы. В самой системе есть куча dll'ок - это все аналоги glibc и xlib, от которых зависят абсолютно все unix-программы (от первой) и все иксовые (и от второй). Плюс к этому каждая виндовая программа требует еще каких-то функций, которых в общесистемных либах нету. Соответственно, при установке она пишет кучу своих dll'ок (причем куда - и Аллаху неведомо). Либы разных программ дублируют функции друг друга, а подчас и конфликтуют между собой.

Тут же (в POSIX-ах) велосипеды изобретать не любят, поэтому все программы, скажем, для работы с графикой будут использовать функции из одних и тех же библиотек - типа там libgif, jpeg, tiff, libpng и т.д., программы для работы с аудио - libaudio, libogg и т.д. Это и есть жесткие зависимости - без них программа просто функционировать не будет.

А есть еще и мягкие зависимости. Это когда программа для обработки фотографий может заодно сканировать и распечатывать. Для чего ей нужны подсистемы sane и cups, соответственно. А может - не делать этого, если у Вас нет сканера и принтера. И тогда эти зависимости можно спокойно игнорировать, в результате программа просто не получит дополнительрных функций.

Как в анекдоте: чего можете? - могу компать. - а еще чего? - могу не копать:-)

На самом деле все может быть чуть сложнее, но это уже детали реализации. В простых системах пакетного менеджмента все обстоит именно так.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Взаимосвязь пакетов

Сообщение t.t »

(Valerius @ Суббота, 12 Марта 2005, 19:37) писал(а):ообщето сама тема касается пакетов, поэтому обойти такой вопрос ну никак нильзя  и помойму никто пока здесь ничего не "развозит"? речь идёт именно о фактах.
Ну, учмтывая в каком разделе мы находимся, можно и продолжить.
(Valerius @ Суббота, 12 Марта 2005, 19:37) писал(а):Вот именно об этом я и говорил! То что пакет составлен с не совсем правильными зависимостями, ещё не о чём не говорит. Кстати, в рпм тоже можно указывать версии в виде >=, = и <=
Да? Не знал. Спасибо за информацию. :)
(Valerius @ Суббота, 12 Марта 2005, 19:37) писал(а):И то что дистрибютор часто не указывает >=, говорит только об одном - он хочет чтобы эта система была максимально стабильной, ведь кто может гарантировать, что новая будущая версия либы будет полностью совместима с предыдущей? Никто, даже сами разработчики  поэтому поставить такое условие означает обречь пользователя на ситуацию, когда все зависимости полностью удовлетворены, но прога не работает.
Сколько ставил пакетов с >, >=, никогда с таким не сталкивался.
(Valerius @ Суббота, 12 Марта 2005, 19:37) писал(а):Моё мнение - рпм не есть идеал. Но если пользоваться родными пакетами а не совать в систему что ни попадя и всегда удовлетворять зависимости, он вполне себя оправдывает.
Я, честно сказать, рпм забыл как страшный сон ещё в те времена, когда к нему не поприкручивали апт и прочие урпми.
(alv @ Понедельник, 14 Марта 2005, 11:52) писал(а):Что проще - в текстовом редакторе перешерстить один файл на предмет исключения зависимостей от, скажем, gpm, или отдельно истреблять их в каждом индивидуальном пакете?
Это именно вопрос, а не утверждение:-))
Зависит от ситуации: если мне нужно поставить _один_ пакет с кривой зависимостью (как чаще всего и бывает), проще его пересобрать или установить принудительно, а если хочется изгнать из системы пакет, который не вполне корректно завязан на многое из установленного -- тогда, видимо, наоборот.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Взаимосвязь пакетов

Сообщение alv »

(t.t @ Среда, 16 Марта 2005, 15:20) писал(а):
(alv @ Понедельник, 14 Марта 2005, 11:52) писал(а):Что проще - в текстовом редакторе перешерстить один файл на предмет исключения зависимостей от, скажем, gpm, или отдельно истреблять их в каждом индивидуальном пакете?
Это именно вопрос, а не утверждение:-))
Зависит от ситуации: если мне нужно поставить _один_ пакет с кривой зависимостью (как чаще всего и бывает), проще его пересобрать или установить принудительно, а если хочется изгнать из системы пакет, который не вполне корректно завязан на многое из установленного -- тогда, видимо, наоборот.



Вот и я к тому - все в жизни имеет свою оборотную сторону. Сейчас вот, имея дело с пакетами для DragonFly из разных репозиториев, с тоской вспоминаю, как просто в Archlinux было просто переделать базу данных:-((
Спасибо сказали: