LINUX.ORG.RU
решено ФорумTalks

[вещества][gentoo][portage]

 , ,


0

0

опять хочу странного ^_^
вот есть пакеты 9999 - которые в 99% собирают содержимое некого гит/свн/ит.д.
хотеть, чтоб портаж запоминал собранную и установленную им ревизию
и при скажем -avuDN world он проверял текущую ревизию в гит/свн/ит.д. для установленных 9999 пакетов
если она изменилась - обновлять пакет
или я плохо гуглю/читаю и это уже есть?

★★★★

Ответ на: комментарий от vitruss

нахер мне твой арч?
с каких пор там портаж?
уйди, флудераст :3

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

В портеже 2.2 есть сет live-rebuild, пересобирает все live пакеты в системе, на счёт того, проверяет ли он что-либо, или просто пересобирает, не знаю, на крайняк сделай фич-реквест

Ivan_qrt ★★★★★
()
$ eix smart-live-rebuild
* app-portage/smart-live-rebuild
     Available versions:  (~)0.6.6
     Homepage:            https://github.com/mgorny/smart-live-rebuild/
     Description:         Check live packages for updates and emerge them as necessary
xetf ★★
()
Ответ на: комментарий от Ivan_qrt

Топик Стартеру: sudo emerge @live-rebuild -pv

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

TuxR ★★★★
()
Ответ на: комментарий от xetf
[ root@desktop ] megabaks USA # smart-live-rebuild 
*** Updating the repositories using 6 parallel jobs...
-> git://anongit.freedesktop.org/~stuart/vbtracetool
!!! Error updating [u'sys-apps/vbtracetool-9999']: [OSError] [Errno 2] No such file or directory: '/usr/portage/distfiles/git-src/vbtracetool'
-> git://0x04.net/pgtest
!!! Error updating [u'sys-apps/pgtest-9999']: [OSError] [Errno 2] No such file or directory: '/usr/portage/distfiles/git-src/pgtest'
-> git://git.savannah.nongnu.org/xbindkeys.git
!!! Error updating [u'x11-misc/xbindkeys-9999']: [OSError] [Errno 2] No such file or directory: '/usr/portage/distfiles/git-src/xbindkeys'
-> https://libjpeg-turbo.svn.sourceforge.net/svnroot/libjpeg-turbo/trunk/
--> svn update --config-dir /usr/portage/distfiles/svn-src/.subversion
-> http://qmmp.googlecode.com/svn/trunk/qmmp/
!!! Error updating [u'media-sound/qmmp-9999']: [OSError] [Errno 2] No such file or directory: '/usr/portage/distfiles/svn-src/qmmp/qmmp'
-> git://github.com/antico/antico.git
!!! Error updating [u'x11-wm/antico-9999']: [OSError] [Errno 2] No such file or directory: '/usr/portage/distfiles/git-src/antico'
^C!!! Updates interrupted, proceeding with already updated repos.

чо за херня?
мне ещё и хлам надо держать? о_О

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

> пересобирает тупо всё
ты вообще читать умеешь?
я и без сетов лишних могу тупо пересобрать

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

и да - не обязательно 9999
можно базу парсить - там есть ответы - как и откуда ставился пакет
меня интересует пересборка, только при наличии ОБНОВ !

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

А можно вообще список ебилдов на бумажке записать, и что? Сет удобнее, и именно с этой целью сделан.

меня интересует пересборка, только при наличии ОБНОВ !


Ну так smart-live-rebuild тем и занимается.

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

Ты тупой, или притворяешься?

Как без хранения репозитория предлагаешь узнавать, из какого коммита собран пакет, если сборка осуществлялась напрямую portage?

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

на данный момент можно плясать от времени сборки - если последнее время обновления репа свежее чем дата установки - обновляем
что не понятно?
притворяешься или нет? :3
а вообще надо бы запилить в портаж отметку о ревизии

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

Последнее обновление репа — это что, и как его узнать? Время последнего коммита часто сильно отличается от времени последнего пуша (для распределённых vcs).

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

например так?

[ megabaks@desktop ] ~ USA $ svn info svn://anonsvn.kde.org/home/kde/branches/trinity/kdeadmin
Path: kdeadmin
URL: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeadmin
Repository Root: svn://anonsvn.kde.org/home/kde
Repository UUID: 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Revision: 1218785
Node Kind: directory
Last Changed Author: tpearson
Last Changed Rev: 1182913
Last Changed Date: 2010-10-05 23:59:13 +0000 (Втр, 05 Окт 2010)

[ megabaks@desktop ] ~ USA $ 

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

Ну с svn всё просто, ты давай пример для git.

xetf ★★
()

Мегабакс, сильно оффтоп, но подскажи, что делать:

По depclean в список на удаление попадает много пакетов, которые точно есть в зависимостях того же Xorg'а. Пока просто забросил их в world, но ясно, что это не самое лучшее решение. Можно как-нибудь явно указать, какому пакету они принадлежат?

И ещё, поскажи что-нибудь для поддержания конфигов(package.*, world и проч.) в надлежащем состоянии. Ну там, отсортировать по алфавиту и т.п.

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

> По depclean в список на удаление попадает много пакетов, которые точно есть в зависимостях того же Xorg'а.

Например?

Навскидку — они могли быть в зависимостях для старой версии, но в новой больше не нужны. Например, изменились флаги USE по умолчанию. Или выкинули HAL.

Или у тебя может стоять несколько версий в разных слотах — тогда будет удалять все кроме одной. Так было с qt3.

Или у тебя части того же Xorg каким-то образом не попали в world или исчезли оттуда.

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

чтобы не быть голословным:

[I] app-portage/smart-live-rebuild
     Available versions:  (~)0.6.6 (**)9999[1]
     Installed versions:  9999[?](21:07:59 04.11.2010)
     Homepage:            https://github.com/mgorny/smart-live-rebuild/
     Description:         Check live packages for updates and emerge them as necessary

[1] "mgorny" /var/lib/layman/mgorny

в случае если portage >=2.2 то emerge @smart-live-rebuild, иначе просто #smart-live-rebuild.

Оно так же умеет создавать бинарные пакеты для 9999 версий (не понял правда к чему это). Поддерживается git, svn, darcs, bazaar, mercurial.

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

ответ на стартовый вопрос выше

> а вообще надо бы запилить в портаж отметку о ревизии

а может сначала надо eclass'ы почитать ;)

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

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

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

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

> на данный момент можно плясать от времени сборки

Предпочитаешь качать и конпелять после каждого коммита в readme.txt?

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

> есть предложения, как избежать этого?

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

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

ignor?
и список херни всякой типа ридми

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

у меня нет копий репозитариев - прикинь сколько места занимает кедо-свалка )
а еклассы - предлагаешь мне опять же костыли?
можно inherit сделать и без правки ебилдов, только /etc/portage и так похож уже на целый пакет-манагер - не дохера ли костылей?

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

это ты пишешь чушь - как думаешь - что лучше фалик с содержимым аля «3892758957» или целое дерево сорсов?
подумай чуть-чуть

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

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

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

> а еклассы - предлагаешь мне опять же костыли?

блин, елы палы, свали нафиг с моей генты пока хендбук не осилишь!

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

и если у нас есть запись об ревизии в /var/db/pkg или хотя бы время - можно без проблем узнать - есть обновы или нет

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

а). кеды через сколько в git переедут? давай для гита команду.

б). а скачивать ты как только последнюю версию будешь?

в). естественно выбор ревизии (мало ли баг) тебе не нужен

г). всякие бонусы типа написать патч и послать методами SCM тоже

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

>а скачивать ты как только последнюю версию будешь?
ты совсем упоротый?

естественно выбор ревизии (мало ли баг) тебе не нужен

пока не до плюшек

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

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

# libastral_cli --load fantastic_packet_manager --action "установи только то, что обновилось, и при этом не пересобирая те пакеты в которых обновились только readme, а потом удали устраревшие пакеты, почисти world файл от того, что не надо, и принеси пива"

для меня smart-live-rebuild очень удобно и делает всё, что надо, единственное то, что мне не нравится это то, что репозиторий на время сборки скопируется в /var/tmp/

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

>> а скачивать ты как только последнюю версию будешь?

ты совсем упоротый?

можешь считать, что да, но напиши решение хотя бы для svn.

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

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

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

это что за дерьмо?
где рецепт с еклассами?
как ты мне предлагаешь сейчас это делать без правки ебилдов или очередного костыля в /etc/portage?

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

>другие их в принципе не видят
вот тебе и ответ
а теперь покинь тред и не пиши больше такого бреда

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

это что за дерьмо?

http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=2

где рецепт с еклассами?

http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=2

/usr/portage/eclass/

# @ECLASS-VARIABLE: ESVN_REVISION
# @DESCRIPTION:
# User configurable revision checkout or update to from the repository
#
# Useful for live svn or trunk svn ebuilds allowing the user to peg
# to a specific revision

и посмотри код, как это делается в smart-live-rebuild.

как ты мне предлагаешь сейчас это делать без правки ебилдов или очередного костыля в /etc/portage?

http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=2

ну smart-live-rebuild это делает, и никто тебе не мешает повторить тоже самое на баше, кстати использовав eclass'ы для scm ты получишь отличный набор функций для своих костылей.

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

дааа... клонировать каждый раз репозиторий это для Ъ

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

Я так понимаю это будет решением твоей проблемы.

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