LINUX.ORG.RU

Gentoo.Как найти пакеты, которые могли остаться после апгрейда системы?

 , ,


0

1

Перед апгрейдом я сделал:

emerge -C $(cat world)
emerge -c

Возможно правильней было сделать?

emerge -C @world
emerge -c

В общем я сделал первый вариант, потом

emerge --sync
далее пересобрал libc, binutils, gcc, переключился на нужные версии и собрал еще раз gcc, libc, binutils и пересобрал @system, потом установил нужные пакеты

Так вот, у меня есть подозрение, что не все пакеты удалились после

emerge -C $(cat world)
emerge -c

Как бы это проверить? Может можно прочекать как-то это?

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

Почему я пытался удалить все пакеты? Потому что emerge –sync не делал год. После синка было столько блокировок, что это можно было разруливать неделю. Проще было удалить весь @world, обновить @system и поставить все нужные пакеты

serg002 ★★★
() автор топика
Последнее исправление: serg002 (всего исправлений: 1)
Ответ на: комментарий от grem

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

serg002 ★★★
() автор топика
Последнее исправление: serg002 (всего исправлений: 1)
Ответ на: комментарий от serg002
mv world{,_bkp}
emerge -av --depclean

Потом уже обновляешь систему. Но так как год не обновлялся, сначала нужно попытаться обновить portage. Скорее всего ничего не выйдет и проще заново накатить будет, потому что помимо пакетов из workd и их зависимостей, есть пакеты предоставляемые выбранным профилем.

grem ★★★★★
()
  1. Проверить содержимое world, в нем не должно быть ничего лишнего (например, библиотек, если они не нужны тебе лично для сборки софта не из потрежа)
  2. emerge -auDU @world
  3. Если предлагают выполнить emerge @preserved-rebuild, сделай
  4. emerge --depclean -a
annulen ★★★★★
()
Ответ на: комментарий от annulen

Кстати, а другого способа удалять и нет. У portage нет команды «удалить пакет и все его зависимости, если они не нужны другим пакетам». Ты в любом случае сперва удаляешь пакет, а потом подчищаешь за ним зависимости.

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

Скорее всего ничего не выйдет и проще заново накатить будет, потому что помимо пакетов из workd и их зависимостей, есть пакеты предоставляемые выбранным профилем

Почему? Летом, кажется, обновлял генту спустя год-полтора, особых проблем с @system не было, а @world в половину случаев достаточно было снести, обновить блокирующую часть пакетов и поставить заново

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

Этим нужно заниматься. У меня там была простыня из 100-200 пакетов. В это нужно вникать, что там что блокирует. Быстрей и проще удалить всё и поставить заново. Естественно не вручную, а с помощью скрипта, где все нужные имена пакетов есть и который нужные конфиги сразу копирует

PS: я же с @system всё это разруливал, а не начисто ставил

serg002 ★★★
() автор топика
Последнее исправление: serg002 (всего исправлений: 1)
Ответ на: комментарий от XMs

Зависит, например, от того, насколько сильно поменялись EAPI, дефолтные версии python.

Но хорошо, что получилось. Просто по времени всё равно не быстрее разворачивания свежего stage выходит. Разве что конфиги бэкапить предварительно не нужно.

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

Нет. Попробуй сам. Эта команда удаляет только пакет, которые ты указал, но не зависимости. Разница с --unmerge только в том, что эта команда не удалит пакет, если он является зависимостью для другого установленного пакета.

eternal_sorrow ★★★★★
()

Насколько помню в merge sync можно указать на какую дату синхронизировать, т.е если допустим осталась прошлое обновление от 15152022 можно синхронизировать на нее(но это сильно врятли), из вариантов обновить то что можно обновить через skipfirs, а так да лучше накатить новую систему с бэкапом etckeeper

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

merge sync можно указать на какую дату синхронизировать

Как это сделать? Было бы очень полезно

serg002 ★★★
() автор топика
Последнее исправление: serg002 (всего исправлений: 2)
Ответ на: комментарий от SPRATAY

Да кстати хороший вариант, и постепенно обновлять

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

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

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

Генту был, пока не повзрослел, но недолго - ровно до тех пор пока не надоело пердолиться ).

А вот что заставляет использовать этот мета дистр для работы в офиcе - не понятно в корне.

her_s_gory
()
Последнее исправление: her_s_gory (всего исправлений: 1)
Ответ на: комментарий от her_s_gory

А вот что заставляет использовать этот мета дистр для работы в офиcе - не понятно в корне.

Если привык, то генту использовать и для работы удобно. Столкнулся с багом в системе, на него выпустили патч, закинул его в etc и не ждешь обновление ПО. Кучу времени экономит.

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

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

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

Угу. Были проблемы с libtorrent 2.0, просто собираешь qbittorrent с 1.2. На днях были проблемы с gmime, старой версии в системе не было, просто закинул патч в etc (который еще не попал в релиз). В ksshaskpass кривые регекспы, поправил, закинул в etc.

Быстро привыкаешь к тому, что все делается легко и по щелчку пальцев.

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

пока не надоело пердолиться

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

Аналогично на ноуте с Mint - включил, обновил, выключил.

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

Я работаю программистом. И вижу технологические процессы. С радостью использовал бы генту в проде, если бы это было возможно. Но увы

serg002 ★★★
() автор топика
Последнее исправление: serg002 (всего исправлений: 1)
Ответ на: комментарий от grem

Да что вы там с системой такое вытворяете?

Я не помню какие именно проблемы возникали 20 лет назад. Скорее всего надо было или какую-то не очень знакомую программу поставить, которой что-то там не хватало, либо пропустил несколько обновлений, и всё поплыло (как у ТС).

Аналогично на ноуте с Mint - включил, обновил, выключил.

Вот именно. Минт открыл через год - он благополучно обновился, и ты спокойно работаешь, в отличие от…

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

Но, согласись, обновляться раз в год - это ни разу не «прод».

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

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

Я вообще не понимаю, зачем ты её пытаешься использовать. Ты правда делаешь какие-то странные вещи с системой, не очень то понимая, что при этом происходит. Пример этого - данная тема: ты удалил пакеты, но не удалил зависимости. Да, возможно , это снимает некоторые блокировки, но раз уж они тоже будут обновляться, то можно и их снести. Как это сделать с помощью опции --depclean здесь уже несколько человек писали.

потом установил нужные пакеты

Эта фраза выглядит так, что то, что до этого было в файле world частично уже не нужно, но его ты так и не почистил, поэтому при следующем обновлении @world они будут заново установлены. Удобнее использовать https://wiki.gentoo.org/wiki//etc/portage/sets , а файл world держать пустым.

Не надо ожидать, что пакетный менеджер работает так же как в deb- или rpm-based дистибутивах: в gentoo при удалении пакета он самостоятельно не станет удалять осиротевшие зависимости; при удалении отдельной зависимости, не удалит зависящий от неё пакет.

grem ★★★★★
()