[linux] лучшая система зависимостей пакетов
dpkg - это кажется в слакваре
apt, portage
А apt - это надстройка над dpkg или rpm, может и еще к чему ее уже присобачили.
portage
+1
для бинарных дистрибутивов лучше apt ещё ничего не придумали.
В нашем форуме нужна новая иконка - пламя. Потому что этому посту соответствует именно она, а не какой-то .
ports
portage
+1
---
...Я работаю антинаучным аферистом...
может быть, кто-нибудь из тех, кто за portage напишет, почему она лучшая?
меня интересуют больше сорс-бейзд системы управления пакетами... apt для этого годится?
Боюсь что сейчас придут дебианцы, федорцы, мандрекцы, убунтуцы и т.д.
Я лично за dpkg, но сравнивать могу только с RPM. DPKG имхо 1)удобнее, 2)мощнее, 3)с надстройками типа APT проги ставить проще, чем в винде
а инфа не устарела?
Updated Dec 24, 2002а главное - там нет сравнения с другими системами, кроме утверждения, что она лучше
зато есть сравнение с ports
да, есть там пара устаревших мест, но идея-то не изменилась. в английской документации обновления сегодняшние.
> "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?
Вот так и выясняется, какая система лучшая.
---
...Я работаю антинаучным аферистом...
может быть, кто-нибудь из тех, кто за 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.: Всё это мой личный взгляд, как человека, не являющегося специалистом в данной области. Если я где не прав - буду рад,если кто поправит
portage появился много лет после BSD ports
в некотором смысле portage создавался как улучшенный вариант ports
"ещё один плюс, что portage существует под большое количество систем (про Windows SFU уже писали, ещё вроде под OSX и FreeBSD, может и ещё под что)"
portage от ports позаимствовал идею: стандартный архив с исходниками + набор патчей, специфичный для конкретной системы/архитектуры
по сути portage представляет из себя набор скриптов, собирающий пакет с учётом необходимых патчей
может я ошибаюсь, но ports существует вроде только в BSD-системах
по-моему, для системы управления пакетами является плюсом, что она не привязана жёстко к определённой системе/дистрибутиву, и её возможно использовать там, где свой системы управления пакетами нет, например в MS Windows SFU, или она чем-то не устраивает (хотя в контексте данного треда,где спрашивали про только про linux, это наверно не очень актуально)
portage от ports позаимствовал идею: стандартный архив с исходниками + набор патчей, специфичный для конкретной системы/архитектурыВообще-то srpm это то же самое.
И dpkg недалеко от этого ушел
даже не ожидал, что кто-то ответит - линуксоиды народ немногословный (обычно)
2: srpm - это все-таки другое
:то есть в portage заложена идея отделить скрипты от пакетов (здесь: сорсов) - в этом фишка
нет своего формата пакетов (вроде .deb или .rpm)
и, по-моему, это правильнее, т.к. более гибко
Блин, в srpm тоже отделен исходный xxx.tar.gz от скриптов и патчей. Везде так.
значит разница в самих скриптах, обслуживающих portage
Я пытаюсь показать, что концепция везде одинаковая.
может быть, я что-то неправильно понимаю (не общался с этим но думаю так: чтобы получить xxx.tar.gz из српм, нужно специальной прогой его выкачивать
srpm - обычный архив.
так что, скрипт для компиляции нужно отдельно качать?
Ы? srpm == cpio( tar.gz + patches + ebuild(грубо говоря) )
мне как раз и не нравится, что все это хранится в файле sprm
мне кажется, что более гибко, когда есть разделяемый каталог сорсов, а каждый использует систему управления зависимостями и билд-скриптами по своему выбору
srpm - не совсем обычный архив Это архив с которым гемору немного побольше, чем с обычным архивом... (по личному опыту по крайней мере) Мне милее просто ./configure; make; make install
Мне милее просто ./configure; make; make installя сам так думал раньше, но постепенно, встречая кучу пакетов, которые не соответствуют FHS или не строятся так легко, решил, что стоит посмотреть на сабж, чуть подкорректировав его под себя
Чем cpio сложнее tar.bz2 ?
и вот эта хуйня часто мешает
Теперь вот хочу понять, смогу ли настроить 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? (да; вопрос снят)
не понял вопрос
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
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. Подробности по ссылке выше.
Если ты уже когда-то емерджил интересующий тебя пакет, то время сборки пакета и его зависимостей можно прикинуть специальными утилитами, ибо оно пищется в лог.
Вообще, такие вопросы лучше задавать не здесь, а на Если кратко:
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. Подробности по ссылке выше.
Если ты уже когда-то емерджил интересующий тебя пакет, то время сборки пакета и его зависимостей можно прикинуть специальными утилитами, ибо оно пищется в лог.
у меня сейчас небольшой напряг с инетом, так что не получается в полном объеме пользоваться поиском (но рекомендации я понял, обязательно позже посмотрю)
кроме того, я сейчас на перепутье. gentoo у меня не стоит, и я пытаюсь понять, нужно ли его ставить...
1. есть дистры, в которых нет системы управления пакетами (как раз таким пользуюсь ). в общем, согласен, что лучше использовать gentoo, если, конечно, он подходит под нужды
2. . объясните мне про stages, пожалуйста... насколько я понял - это бинарники. что значит обновится? почему этот stage не используется прямо с livecd? т.е. я допускаю, чтобы на livecd были бинарники, но хочу, чтобы моя система состояла только из скомпилированного на моей машине обеспечения...
3. понял
4. понял. cvs - хорошая идея! зачем: бывает, что пакеты утяжеляются, и на старую машину лучше ставить старую версию
5. я хочу использовать и только часть официального дерева portage, и пакеты, туда не входящие! т.е. обновлять дерево в одну дир-ю, а при установке использовать другую. зачем: хочу иметь нужные мне дистрибутивы в сорсах и ebuilds к ним и не более! видел доп. файлы (манифест и ченджлог) - они обязательны? и как с ними быть?
6. скажем, настроил я самбу, сохранил свой конфиг, записал его на диск. может ли portage подцепить конфиг каким-то средством при установке на другой машине? как portage генерит начальный конфиг (подозреваю, что прямо ebuilds идет вывод в файл)?
7. понял
8. понял. жаль в ebuilds не зашивают время в относительных единицах - было бы удобно!
когда ты сделаешь 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.
если только несколько пакетов, то собираешь с них пакеты-бинарникы, конфиг будет там же
+ порывшись в 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 умеет с этим работать - ему только в плюс!
конечно, ничто не мешает мне хранить их в отдельном архиве и копировать после установки
нашел на gentoo.hackers, странно, что там не последняя версияпрошу прощения - на днях уже появился 2005.0
только, видимо, придется 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.
к тому же этот ливцд будет актуален от силы один месяц
да, это livecd. тебе по-идее для установки нужен любой загрузчик с ядром, поддерживающим твое железо(сеть) и твои любимые fs. хоть с дискетки грузись.
вот я и говорю, собираешь бинарник с установленного и сконфигурированного пакета и тиражируешь его. quickpkg
к слову, для обновления конфигов есть удобный скрипт etc-update
В принципе, 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
5. я хочу использовать и только часть официального дерева portageВот этот параметр в make.conf должен помочь:
RSYNC_EXCLUDEFROM = "/etc/portage/rsync_excludes"А про не входящие уже сказали (PORTDIR_OVERLAY).
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.
С год назад у неё не было проверки зависимостей при удалении пакета.
Подробнее можно?
7. Ведется ли журнал компиляции пакетов?слишком коротко сформулировал вопрос, поэтому меня неправильно поняли
теперь так:
можно ли заставить emerge записывать все, что происходит при компиляции пакета (весь вывод)?
это может быть нужно для того, чтобы определить возникшие ошибки, предупреждения через некоторое время
emerge blablabla >& log
хотелось бы, чтобы он сам умел, разбивал логи по пакетам, мб, даже архивировал их!
всегда, конечно, можно дописать функциональность, но нужно выяснить - может, она уже реализована
Сколько зеркало генту занимает? (Хачу на каникулах побаловаться)
[/offtop]
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)
Спасибо, если будет время выбирать так и сделаю. А всё взять тоже не проблема
Умеет он вести логи компилляции пакетов, пишет отдельный файл для каждого пакета. Ну а архивировать их, я думаю, ты и сам сможешь, благо, средств для этого хватает.
надо еще поискать...
спасибо!
Оставить комментарий
a10063
интересны ваши мнения: какая и почему?читал только где-то, что dpkg делает rpm - все, что об этом знаю
кто-нибудь сравнивал?