LINUX.ORG.RU

Чего портаге себя так ведет, а также какого дьявола он самовольно без спроса сносит ncurses?

 , , , ,


0

1

Суть токова: на генте 6 или 7 год, нижеописанных двух проблем никогда не происходило, скажу сразу, что у меня довольно простое отношение и майнтейнинг системы, например, я вот не знаю, что такое «файл мира», он мне не нужен, маски в масках, унмаски в унмасках, кейворды в кейвордах, юзы в package.use/custom, всё.

в make.conf:

ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="*"
надесюсь понятно, что лошки-любители мифов про стабильность могут здесь же прекратить читать и пройти в другие треды.

Ну а проблемы с портажем такие:

  • Примерно месяц назад, портаге по непонятной причине самовольно ска начал сносить одну из ncurses установленных в оба слота, почему так установлено, надеюсь, не нужно объяснять. Будет он сносить или не будет невозможно знать заранее, потому что по emerge -vp этого не видно (правда я никогда не использую -a, может он бы и спрашивал, но это гемор вонючий подтверждать то, что и так было видно при -vp).

    Это выливается в довольно серьезные проблемы, перестает работать gawk пока не заменишь бинарник скопировав со стейджа3, перестает работать readline и прочий треш, а съемержить обратно их нельзя (как и ncurses, как и любой пакет вообще), потому что этот самовольный снос ломает тулчейн. Вот например тоже человек жаловался на эту проблему.

  • Вторая проблема заключается в том, что какого дьявола портаж хочет пересобирать то, что пересобирать гарантировано не нужно, например на свеже поднимаемой генте со стаге3 первым делом нужно сделать что? Правильно, нужно вкатить самый свежий gcc и им уже компилить ядро и всю систему.

    Делаем emerge -vp gcc gcc-config , получаем, или например вообще просто (с тем же результатом, что и gcc) делаем emerge -vp wget , , получаем:

    ~ # emerge net-misc/wget -vp
    
    These are the packages that would be merged, in order:
    
    Calculating dependencies... done!
    [ebuild  r  U  ] sys-libs/ncurses-6.0-r1:0/6::gentoo [5.9-r5:0/5::gentoo] 
    [ebuild   R    ] virtual/libintl-0-r2::gentoo  ABI_X86="32* (64) (-x32)"
    [ebuild  r  U  ] sys-apps/less-483::gentoo [481::gentoo] 
    [ebuild  N     ] net-dns/libidn-1.32-r1::gentoo  
    [ebuild     U  ] net-firewall/iptables-1.6.0:0/11::gentoo [1.4.21-r1:0/0::gentoo] 
    [ebuild     U  ] net-misc/wget-1.17.1-r1::gentoo [1.16.3-r1::gentoo] 
    [ebuild  r  U  ] sys-process/procps-3.3.11-r3:0/5::gentoo [3.3.10-r1:0/0::gentoo] 
    [ebuild  r  U  ] app-editors/nano-2.5.3::gentoo [2.4.3::gentoo] 
    [ebuild  r  U  ] sys-apps/util-linux-2.27.1::gentoo [2.26.2::gentoo] 
    [ebuild  r  U  ] sys-apps/openrc-0.20.5::gentoo [0.19.1::gentoo] 
    [ebuild  NS    ] sys-libs/db-6.0.35:6.0::gentoo [4.8.30-r2:4.8::gentoo] 
    [ebuild  r  U  ] sys-apps/iproute2-4.5.0::gentoo [4.4.0::gentoo] 
    
    Total: 12 packages (9 upgrades, 1 new, 1 in new slot, 1 reinstall), Size of downloads: 52,384 KiB
    
    The following packages are causing rebuilds:
    
      (sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) causes rebuilds for:
        (sys-apps/util-linux-2.27.1:0/0::gentoo, ebuild scheduled for merge)
        (app-editors/nano-2.5.3:0/0::gentoo, ebuild scheduled for merge)
        (sys-apps/openrc-0.20.5:0/0::gentoo, ebuild scheduled for merge)
        (sys-apps/less-483:0/0::gentoo, ebuild scheduled for merge)
      (net-firewall/iptables-1.6.0:0/11::gentoo, ebuild scheduled for merge) causes rebuilds for:
        (sys-apps/iproute2-4.5.0:0/0::gentoo, ebuild scheduled for merge)
    
    окей, ска, ставим в make.conf «amd64» вместо «~amd64», просто размаскировываем wget, проверяем и получаем тот результат, который был на протяжении многих лет, а именно он будет обновлять только wget, а не весь этот трешак.

Почему так? Что случилось с этим гребанным ncurses?


Там свистопляска с обновлением мажорной версией ncurses-6.0 из тестинга. Поставить осилить его и всё будет ок.

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

Но ведь это ~, а в стабильном ncurses не надо новый накатывать, отсюда и проблем нет.

я вот не знаю, что такое «файл мира»

А стоило бы найти и, быть может, почистить.

Bfgeshka ★★★★★ ()

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

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

kep, только лишь из-за уважения пишу этот текст. И честно скажу, что 3 раз стираю написанный текст т.к получается простыня, больше похожая на поэму, нежели на четкий и конструктивный ответ. Сразу скажу, что Я юзал генту с 2004 года по 2015 и могу сказать, что это классный метадистриб, которому аналогов нет, но и там не все гладко.

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

1. Итак, данные слова не имеют под собой оснований. В генте, в отличие от бинарных дистрибов первостепенное - это наличие стабильного тулчаина, способного при любом косяке пересобрать пакет. Этого можно добиться при одном условии, а именно: отсутствие во всей системе ~. Если ты это будешь отрицать - ты можешь кричать про лошков сколь угодно долго и громко, а на деле будешь получать

а съемержить обратно их нельзя (как и ncurses, как и любой пакет вообще), потому что этот самовольный снос ломает тулчейн

2. Все эти use-флаги - это магия, а не штатно заложенная в сорсы функция. Да, оно работает, да, - есть EAPI в портаже, дабы исключать многие проблемы. Но исключить их полностью не получится никогда. Поэтому косяки будут всегда. То там, то сям.

bryak ★★★ ()

Примерно месяц назад

оно с прилётом плазмы мне моск ест. то есть то не есть.

anonymous ()

на генте 6 или 7 год

я вот не знаю, что такое «файл мира»

Ученье - свет, неученье - тьма.

самовольный снос

Портеж при установке ничего не сносит. revdep-rebuild && emerge -a depclean делали? Ничего не упускали?

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

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

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

Понимаю, но у меня абсолютно противоположный личный опыт, изначально на ~ — и всё прекрасно работало и работает, было только две единственные проблемы, вот эта с ncurses (это же дикий баг — снос пакета без разрешения, впервые вижу), а также пару лет назад было, что нельзя обновлять cmake, иначе не собирались проги всякие на нём, потом ту версию замаскировали, но проблем-то особенно не было.

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

Портеж при установке ничего не сносит.

Портеж при установке сам без спроса сносит ncurses о чём и пишет после установки, я гарантирую это, своими глазами видел 3 раза.

Еще раз встречу, скопирую лог.

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

Разве что в случае автоматического разрешения блокировки. Но это видно на этапе ask/pretend.

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

Нет, не видно при -vp , в том-то и вся дикость.

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

Вот например тоже жалуется человек, что сносится autoclean'ом и ломает всю систему: #573504.

kep ()

Гента с 2004 года в стагнации, чего ты ожидал то?

entefeed ☆☆☆ ()
Ответ на: комментарий от kep

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

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

Ну я просто здесь посмеяться хочу над твоим говнодистрибутивом со старыми пакетами и systemd.

// если это так.

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

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

bryak ★★★ ()

А у тебя обе ncurses установлены явно, вручную, т.е. являются частью world'a? Если нет, то вполне может и сносить, за кажущейся ему ненадобностью. Если да, то похоже таки баг.

(sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) causes rebuilds for:...

Что здесь непонятно? Прыгаем на ~arch, у какого-то из пакетов, обновляющихся вместе с wget'ом (т.к. для его зависимостей есть обновление) зависимость от ncurses, в ~arch доступна ncurses 6-ая, она тянется и вызывает пересборку пачки использующих её пакетов. Похожая история и с iptables.
Что касается этого:

на свеже поднимаемой генте со стаге3 первым делом нужно сделать что

ящитаю™, что нужно вкатить ~arch и обновить мир (если уж на нестабильной ветке сидеть планируется). А потом ещё можно emerge -e world для спокойствия. А зачем вручную собирать gcc, если она и так прилетит с обновлением - непонятно. Ну или можно с -1 уже, чтобы потом все остальные обновления уже новой версией собирать. Так или иначе, в world'e gcc в общем случае не нужен.

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

А у тебя обе ncurses установлены явно, вручную, т.е. являются частью world'a?

Да.

~ # cat /var/lib/portage/world | grepi ncurses

sys-libs/ncurses:0
sys-libs/ncurses:5

ящитаю™, что нужно вкатить ~arch и обновить мир

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

Это особенно важно, когда в стейдже например 4-я ветка gcc, а уже доступна 5-я ветка, там ведь перфоманса дали, как говорят, так что невыгодно сначала 4-й, а потом опять то же 5-й.

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

~ # cat /var/lib/portage/world | grepi ncurses

А говоришь, не знаешь, где там world. Тогда да, бредово, тут не поспорить, надо в багзилле возмущаться.

как-то ты неправильно считаешь

Вот поэтому там и приписка в конце про -1, ну и пересобрать stage3-то свежим компилятором тоже не помешает, вот почему и про world -e тоже приписка.

Nirvandil ()

Подходил к концу 2016 год, сжопорукая гента продолжает самовольно сносить ncurses без предупреждения.

// emerge thunderbird-bin

slon ()

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

я вот не знаю, что такое «файл мира»

Сказочный дурачек. Если не можешь (и, видимо, не хочешь, раз сознательно от этом пишешь) разобраться в том, что используешь — вали на убунту, макось или винду.

Не разбавляй пользователей генту своим идиотизмом — оно от этого в среднем тупеет. Не люблю тупые сообщества.

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

Он сносит старую версию или пакет-заглушку, а новая остаётся если находится в зависимостях.

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

Нет, ты не знаешь, что происходит.

[I] sys-libs/ncurses
     Available versions:  
     (0)    5.9-r3 (~)5.9-r4 5.9-r5(0/5) (~)6.0-r1(0/6)
     (5)    5.9-r99(5/5) (~)5.9-r101(5/5) (~)6.0(5/6)

Он сносит 6.0-r1 и вываливает revdep-rebuild список пакетов, при запуске которого опять хочет собрать 6.0-r1, но сделать этого не может по причине креша компиляции:

? no tic program found 

Выход: сносить 6.0 и собирать их вместе.

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