[linux] лучшая система зависимостей пакетов

a10063

интересны ваши мнения: какая и почему?
читал только где-то, что dpkg делает rpm - все, что об этом знаю
кто-нибудь сравнивал?

krishtaf

dpkg - это кажется в слакваре

krishtaf

apt, portage

Zoulla

dpkg в Debian, а в Slackware вроде и нет никакой системы управления пакетами, там в архивах все.
А apt - это надстройка над dpkg или rpm, может и еще к чему ее уже присобачили.

dgaf

portage

stat7984215

+1

vall

для бинарных дистрибутивов лучше apt ещё ничего не придумали.

sergey_m

В нашем форуме нужна новая иконка - пламя. Потому что этому посту соответствует именно она, а не какой-то .

eee1

ports

Julie16

portage

Jackill

+1

Ivan8209

Это точно.
---
...Я работаю антинаучным аферистом...

a10063

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

eee1

Боюсь что сейчас придут дебианцы, федорцы, мандрекцы, убунтуцы и т.д.

Fragaria

Я лично за dpkg, но сравнивать могу только с RPM. DPKG имхо 1)удобнее, 2)мощнее, 3)с надстройками типа APT проги ставить проще, чем в винде

a10063

да, я на это дело уже натыкался, правда на другом сайте
а инфа не устарела?
Updated Dec 24, 2002
а главное - там нет сравнения с другими системами, кроме утверждения, что она лучше

krishtaf

зато есть сравнение с ports

dgaf

там есть сравнение с BSD-ports
да, есть там пара устаревших мест, но идея-то не изменилась. в английской документации обновления сегодняшние.

Ivan8209

> By Che Kristo on 2005-05-18 0427
> "Why should they take OpenBSD ports while there's a lot more software in FreeBSD ports?"
> Why bother with either when NetBSD's PKGSRC runs won Windows SFU already?
Вот так и выясняется, какая система лучшая.
---
...Я работаю антинаучным аферистом...

stat7984215

может быть, кто-нибудь из тех, кто за portage напишет, почему она лучшая?
ну вот я был в числе тех, кто высказался за portage
сравнивать могу только с rpm, apt (на debian FreeBSD ports
rpm: это вообще большая проблема, с разрешением зависимостей у неё жопа полная
более-менее хорошо она работает только в том случае, ели пакет, с которым ты имеешь дело (бинарный собран конкретно под твою систему (при работе с .srpm частенько приходится вручную править spec файл для включения нужных опций при сборке пакета и разрешения зависимостей)
На сорс-бейзд систему управления пакетами вообще не тянет (из сорцов можно собрать только отдельный пакет, порой с большим гемором)
apt: общался мало, пару раз ставил знакомым debian, с бинарными пакетами ведёт себя весьма неплохо (один раз apt меня сильно удивил: поставил я base system, обновил ядро, потом сказал apt-get install kde - вместе с kde установилась много программ, к kde отношения на первый взгляд не имеющих, вроде xmms, но почему-то не установился X-сервер - пришлось его отдельно устанавливать - но это наверно не проблема apt, а ошибка авторов конкретного пакета)
ports: не встречал под линухом
portage: лишена описанных мною проблем в трёх предыдущих пунктах, наиболее часто используемые опции для ./configure скрипта каждого пакета задаются удобным образом через переменные среды или конфиги, нет своего формата пакетов (вроде .deb или .rpm что весьма удобно - ипользуются стандартные архивы от авторов + ebuild-скрипты + патчи (почти как в ports , только удобнее в использовании ещё один плюс, что portage существует под большое количество систем (про Windows SFU уже писали, ещё вроде под OSX и FreeBSD, может и ещё под что)
Ничего не могу сказать про то, как она работает с бинарными пакетами - не пользовался никогда этой фичей
P.S.: Всё это мой личный взгляд, как человека, не являющегося специалистом в данной области. Если я где не прав - буду рад,если кто поправит

eee1

Новое открытие для тебя:
portage появился много лет после BSD ports

stat7984215

я в курсе
в некотором смысле portage создавался как улучшенный вариант ports

eee1

может быть я сегодня тупой, но тогда не могу понять фраз:
"ещё один плюс, что portage существует под большое количество систем (про Windows SFU уже писали, ещё вроде под OSX и FreeBSD, может и ещё под что)"

stat7984215

это наверно я просто неудачно выразился, сказав, что portage улучшенный вариант ports
portage от ports позаимствовал идею: стандартный архив с исходниками + набор патчей, специфичный для конкретной системы/архитектуры
по сути portage представляет из себя набор скриптов, собирающий пакет с учётом необходимых патчей
может я ошибаюсь, но ports существует вроде только в BSD-системах
по-моему, для системы управления пакетами является плюсом, что она не привязана жёстко к определённой системе/дистрибутиву, и её возможно использовать там, где свой системы управления пакетами нет, например в MS Windows SFU, или она чем-то не устраивает (хотя в контексте данного треда,где спрашивали про только про linux, это наверно не очень актуально)

sergey_m

portage от ports позаимствовал идею: стандартный архив с исходниками + набор патчей, специфичный для конкретной системы/архитектуры
Вообще-то srpm это то же самое.

ppplva

И dpkg недалеко от этого ушел

a10063

большое спасибо за развернутый ответ!
даже не ожидал, что кто-то ответит - линуксоиды народ немногословный (обычно)
2: srpm - это все-таки другое
:
нет своего формата пакетов (вроде .deb или .rpm)
то есть в portage заложена идея отделить скрипты от пакетов (здесь: сорсов) - в этом фишка
и, по-моему, это правильнее, т.к. более гибко

sergey_m

Блин, в srpm тоже отделен исходный xxx.tar.gz от скриптов и патчей. Везде так.

dgaf

значит разница в самих скриптах, обслуживающих portage

sergey_m

Ясен пень.
Я пытаюсь показать, что концепция везде одинаковая.

a10063

вот именно, что "в srpm"... а в portage они отдельно как файлы
может быть, я что-то неправильно понимаю (не общался с этим но думаю так: чтобы получить xxx.tar.gz из српм, нужно специальной прогой его выкачивать

Julie16

srpm - обычный архив.

a10063

так что, скрипт для компиляции нужно отдельно качать?

Julie16

Ы? srpm == cpio( tar.gz + patches + ebuild(грубо говоря) )

a10063

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

gsharov

srpm - не совсем обычный архив Это архив с которым гемору немного побольше, чем с обычным архивом... (по личному опыту по крайней мере) Мне милее просто ./configure; make; make install

a10063

Мне милее просто ./configure; make; make install
я сам так думал раньше, но постепенно, встречая кучу пакетов, которые не соответствуют FHS или не строятся так легко, решил, что стоит посмотреть на сабж, чуть подкорректировав его под себя

ppplva

Чем cpio сложнее tar.bz2 ?

Chupa

srpm - это не просто cpio, а cpio + хуйня
и вот эта хуйня часто мешает

a10063

Спасибо всем за советы, соображения!
Теперь вот хочу понять, смогу ли настроить portage (или даже Gentoo) под свои нужды.
Пока что не нашел ответов на следующие вопросы (кто знает - помогите, плиз!).
1. Возможно ли использование portage без Gentoo? Если да, то как это сделать максимально корректно?
2. Возможно ли обойти эти непонятные stages (видимо, содержащие бинарники) при установке системы Gentoo и скомпилить базовые пакеты прямо с ливсиди?
3. Если не (2 то как называется проект, отвечающий за сборку диска Gentoo (чтобы я мог его скомпилить )?
4. Где достать ebuilds для старых версий пакетов, ведь они исчезают из дерева portage со временем?
5. Можно ли использовать подмножество дерева portage и как это сделать корректно (я вроде читал, что emerge должен ругаться при отсутствии нужных ebuilds, но не уверен)? Как производить синхронизацию дерева portage в связи с этим?
6. Есть ли инструменты в portage для работы с личными конфигами, и, вообще, с конфигами?
7. Ведется ли журнал компиляции пакетов?
8. Можно ли посчитать приблизительное время компиляции пакета со всеми зависимостями?
9. Руководствуются ли разработчики portage правилами FHS? (да; вопрос снят)

dgaf

2) stage1 - это только минимально необходимое для того чтобы собрать system, в ходе сборки само обновится
не понял вопрос
3) gentoo-livecd-howto?
5) PORTDIR_OVERLAY
6) не понял. man portage видимо
7) /var/log/emerge.log /var/log/emerge-sync.log
man genlop
8) сильно зависит от CFLAGS, USE. после сборки - genlop -t

stat7984215

Вообще, такие вопросы лучше задавать не здесь, а на http://forums.gentoo.org. Из дополнительных источников можно посоветовать http://gentoo.org и http://gentoo-wiki.com. В сумме на них ты можешь без проблем найти подробные ответы почти на все заданные тобой ответы (+ google тоже никто не отменял ).
Если кратко:
1) Да, например некоторые его довольно успешно используют на OSX и не только.. Использование portage на другом дистрибутиве linux лично я не считаю хорошей идеей, так как наверняка возникнут проблемы при использовании двух разных систем управления пакетами. Подробнее смотри названные выше источники, особенно раздел Gentoo on Alternative Architectures на джентушном форуме.
2) Хз, не пробовал, но скорее всего можно извратиться, без всех stage'ов кроме stage1 точно можно обойтись. Хотя я не понимаю такое желание - вполне возможно или найти livecd со stage1, или скачать этот stage1 при помощи livecd. Подровнее смотри gentoo.org и gentoo-wiki.com - там достаточно информации про установку gentoo самыми разными способами.
3) См. те же источники, что и п.2
4) Зачем? Например, с джентушного cvs'а выдрать, или гуглем поискать - может у кого завалялись
5) Не совсем понял: ты хочешь использовать только часть официального дерева portage или пакеты, туда не входящие? Для второго есть PORTDIR_OVERLAY.
6) Не понял, можешь пояснить?
7) Да
8) В принципе, да. Ещё недавно существовал такой проект как http://gentoo-stats.org, который занимался сбором и анализом времени сборки разных пакетов, в том числе там можно было в онлайне посмотреть, сколько в среднем компиляется то, что тебе нужно, но недавно автор разругался с джентушными девелоперами и открыл новый проект, никак не зависящий от gentoo. Подробности по ссылке выше.
Если ты уже когда-то емерджил интересующий тебя пакет, то время сборки пакета и его зависимостей можно прикинуть специальными утилитами, ибо оно пищется в лог.

a10063

спасибо вам обоим за ответы
у меня сейчас небольшой напряг с инетом, так что не получается в полном объеме пользоваться поиском (но рекомендации я понял, обязательно позже посмотрю)
кроме того, я сейчас на перепутье. gentoo у меня не стоит, и я пытаюсь понять, нужно ли его ставить...
1. есть дистры, в которых нет системы управления пакетами (как раз таким пользуюсь ). в общем, согласен, что лучше использовать gentoo, если, конечно, он подходит под нужды
2. . объясните мне про stages, пожалуйста... насколько я понял - это бинарники. что значит обновится? почему этот stage не используется прямо с livecd? т.е. я допускаю, чтобы на livecd были бинарники, но хочу, чтобы моя система состояла только из скомпилированного на моей машине обеспечения...
3. понял
4. понял. cvs - хорошая идея! зачем: бывает, что пакеты утяжеляются, и на старую машину лучше ставить старую версию
5. я хочу использовать и только часть официального дерева portage, и пакеты, туда не входящие! т.е. обновлять дерево в одну дир-ю, а при установке использовать другую. зачем: хочу иметь нужные мне дистрибутивы в сорсах и ebuilds к ним и не более! видел доп. файлы (манифест и ченджлог) - они обязательны? и как с ними быть?
6. скажем, настроил я самбу, сохранил свой конфиг, записал его на диск. может ли portage подцепить конфиг каким-то средством при установке на другой машине? как portage генерит начальный конфиг (подозреваю, что прямо ebuilds идет вывод в файл)?
7. понял
8. понял. жаль в ebuilds не зашивают время в относительных единицах - было бы удобно!

dgaf

2) stage1 это просто бинарники gcc, glibc и др. , чтобы было с чего начинать
когда ты сделаешь emerge world -u они все обновятся
stage2 - то же + скомпиленный system. в этом случаем уже можешь начинать собирать нужные проги, а потом когда врямя будет весь мир пересоберешь и обновишь
stage3 - то же + кое-какие проги (надо глянуть /var/lib/portage/world в нем)
можешь обойтись без stages и все скопировать руками, только не ясно зачем это.
5) тут есть кое-что
ru.gentoo-wiki.com/Unofficial_ebuilds
ru.gentoo-wiki.com/Portage_Overlay
6) клонировать систему проще tar-ом - т.е. собрать свой stage4.
если только несколько пакетов, то собираешь с них пакеты-бинарникы, конфиг будет там же

a10063

2. ага, спасибо, про stages вроде понял
+ порывшись в install instructions нашел фразу "So, you want to compile everything from scratch? Okay then :-)"
все, это для меня! только, видимо, придется livecd подкорректировать и добавить туда сорсы базовой системы, которые gentoo так любит качать из инета!
кстати, диски вроде install-x86-universal-2004.3-r1.iso являются livecd? (нашел на gentoo.hackers, странно, что там не последняя версия)
5. понял
6. tar, безусловно, рулит, но это я привел пример использования конфигов - перенос на другую машину
мысль в основном такая: запомнить настройки программ, а если portage умеет с этим работать - ему только в плюс!
конечно, ничто не мешает мне хранить их в отдельном архиве и копировать после установки

a10063

нашел на gentoo.hackers, странно, что там не последняя версия
прошу прощения - на днях уже появился 2005.0

stat7984215

только, видимо, придется livecd подкорректировать и добавить туда сорсы базовой системы, которые gentoo так любит качать из инета!
Это довольно просто лечится.
Если ты будешь ставить систему на машину в локалке, то обновлять дерево портежей и сорцы можно с gentoo.hackers, прописав в /etc/make.conf GENTOO_MIRRORS="ftp://172.16.32.160/pub/mirror/gentoo" и SYNC="rsync://172.16.32.160/portage"
Ежели будешь ставить на машину не в локалке, то нужные сорцы можно утащить оттуда же на каком-нибудь носителе и потом залить в /usr/portage/distfiles. В принципе, distfiles можно ещё попробовать брать, например, от FreeBSD (добавив нужный адрес в GENTOO_MIRRORS благо они довольно много у кого здесь пошарены - находил там пару вещей, которых не было на gentoo.hackers.

dgaf

весь distfiles все равно не засунешь на livecd, качай их из сетки, в чем проблема
к тому же этот ливцд будет актуален от силы один месяц
да, это livecd. тебе по-идее для установки нужен любой загрузчик с ядром, поддерживающим твое железо(сеть) и твои любимые fs. хоть с дискетки грузись.
вот я и говорю, собираешь бинарник с установленного и сконфигурированного пакета и тиражируешь его. quickpkg
к слову, для обновления конфигов есть удобный скрипт etc-update

dgaf

В принципе, distfiles можно ещё попробовать брать, например, от FreeBSD (добавив нужный адрес в GENTOO_MIRRORS благо они довольно много у кого здесь пошарены - находил там пару вещей, которых не было на gentoo.hackers.

$ cat /etc/portage/mirrors
local ftp://fireball.gznet.ru ftp://gentoo.hackers/pub/mirror/gentoo http://lorien/smb/unix.hackers http://lorien/smb/gulipin/ports

tokuchu

5. я хочу использовать и только часть официального дерева portage
Вот этот параметр в make.conf должен помочь:
       RSYNC_EXCLUDEFROM = "/etc/portage/rsync_excludes"
This is a file that portage will pass to rsync when it updates
the portage tree. Specific chucks of the tree may be excluded
from the sync process. This may cause dependency failures if
you are not careful. The file format is pattern per line,
blanks and ';' or '#' lines are comments. See rsync(1) for more
details.
А про не входящие уже сказали (PORTDIR_OVERLAY).

oyuriyu

а portage на попытку удаления Х'ов, например, до сих пор не ругается ?
С год назад у неё не было проверки зависимостей при удалении пакета.

tokuchu

Подробнее можно?

a10063

7. Ведется ли журнал компиляции пакетов?
слишком коротко сформулировал вопрос, поэтому меня неправильно поняли
теперь так:
можно ли заставить emerge записывать все, что происходит при компиляции пакета (весь вывод)?
это может быть нужно для того, чтобы определить возникшие ошибки, предупреждения через некоторое время

Julie16

emerge blablabla >& log

a10063

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

Vlad77

[offtop]
Сколько зеркало генту занимает? (Хачу на каникулах побаловаться)
[/offtop]

a10063

нет, ему же не нужно все!
2
необходимо только вот это:
distfiles http://lorien.local/showdir.pl?host=1029&where=347 (31Gb)
instalcd http://lorien.local/showdir.pl?host=1029&where=177432 (700Mb) + взял бы еще handbook из 2004.3, если компилировать с нуля (я менял исошку)
свежий portage http://lorien.local/showdir.pl?host=1029&where=346 (20Mb)

Vlad77

Спасибо, если будет время выбирать так и сделаю. А всё взять тоже не проблема

stat7984215

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

a10063

хм, видать я где-то не доботал
надо еще поискать...
спасибо!
Оставить комментарий
Имя или ник:
Комментарий: