LINUX.ORG.RU

Проблема с emerge --sync

 ,


0

1

Есть машина с Gentoo, которая ОЧЕНЬ давно не обновлялась. При попытке скачать обновления получаю ошибку:

$ sudo emerge --sync
Пароль: 
>>> Syncing repository 'gentoo' into '/usr/portage'...
 * Using keys from /usr/share/openpgp-keys/gentoo-release.asc
 * Refreshing keys from keyserver ...OpenPGP keyring refresh failed:
gpg: refreshing 4 keys from hkps://hkps.pool.sks-keyservers.net
gpg: keyserver refresh failed: Server indicated a failure

Рекомендации 2019 года – https://forums.gentoo.org/viewtopic-p-8358476.html – не помогают, там другая ошибка.

В чём может быть дело?

Итог:

Достаточно легко удалось проапдейтить gcc, python, portage, system и кое-что ещё, удаляя /usr/portage/ и распаковывая туда снапшоты squashfs от 20180701, 20190801, 20200801 и 20210801. При этом ряд программ пришлось маскировать и в итоге снести, так как их не осталось ни на зеркалах, ни в апстриме. Особенно подвержены этому оказались Дженту-специфичные утилиты.

Проапдейтив system, gcc, python и частично KDE до августа 2021-го года, решился синхронизироваться и пересобрать мир. На разруливание конфликтов ушла неделя вечеров. Часть пакетов пришлось снести, чтобы не мешали, но почти всё шло гладко, пока не ушла в своп сборка Chromium-а 100 — 16 гигабайт оказалось мало. После ресета отказались грузиться иксы. Хромиум тоже снёс, а сборку мира, emerge @preserved-rebuild и обновление ядра завершил без иксов.

С X.org оказалось, что надо запускать elogind и dbus, а вместо startkde вызывать startplasma-x11, желательно через dbus. startplasma-x11 ставится с kde-plasma/plasma-workspace

В итоге получилась система, в которой от старой почти ничего не осталось, кроме make.conf, примерно 3/4 portage.use и /home. Оверлеи ещё не подключал.

Стоило ли сразу ставить с нуля по хендбуку? Не знаю.

А сам ключ нашёлся в пакетах app-crypt/openpgp-keys-gentoo-release и sec-keys/openpgp-keys-gentoo-release.

★★★★★

Последнее исправление: question4 (всего исправлений: 2)

Очень давно это сколько? Мне предстоит обновлять год не обновлявшуюся генту, морально готовлюсь

XMs ★★★★★
()

Если система не обновлялась больше года, то переустанавливай.

Хотя год ещё более-менее терпимо, но если ты говоришь о двух и более годах - переустанавливай.

Если конечно не хочешь разбираться с циклическими блокировками, отсутствующими зависимостями, отсутствующими флагами и прочим.

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

Если конечно не хочешь разбираться с циклическими блокировками, отсутствующими зависимостями, отсутствующими флагами и прочим.

Допустим, хочу :)

Если ставить заново, как это лучше делать из работающей системы?

И всё ещё интересно, что это за проблема с ключами?

question4 ★★★★★
() автор топика

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

Ищи рабочий кейсервер (ubuntu, напримет) или актуальный кейринг.

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

Нагуглил - кейсервер задаётся в /etc/portage/repos.conf:

sync-openpgp-keyserver = hkps://keys.gentoo.org

но когда появился repos.conf и, следовательно, будет ли у тебя - не знаю, генту не видел лет десять.

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

Если ставить заново, как это лучше делать из работающей системы?

Точно так же как ты ставил Gentoo. Скачиваешь stage3 архив, распаковываешь, делаешь chroot и далее по Handbook.

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

sync-openpgp-keyserver = hkps://keys.gentoo.org

Спасибо.

но когда появился repos.conf и, следовательно, будет ли у тебя - не знаю, генту не видел лет десять.

Тут есть /etc/portage/repos.conf/gentoo.conf и синтаксис похож.

А неправильный сервер нашёлся-таки в бинарнике /usr/bin/dirmngr. Непонятно, почему в прошлый раз не нашёлся.

P.S. Не помогло :( Всё равно лезет по захардкоженному адресу. Буду разбираться завтра.

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

Рекомендую делать sync не на актуальный портеж, а на ветку середины 2019 грда и обновить самую базовую систему хотя бы несколько раз с шагами в полтора года (если делать всё аккуратно - полтора года пройдут без проблем). Весь мир может и не надо пересобирать, но тебя ждёт несколько циклов обновления python. Чтобы пересобирать меньше, можно пропускать обновления python без необходимости - т.е появился новый слот размаскированный - маскировать его, главное все необходимые шаги обновления пройти корректно. Ну и сразу имеет смысл снести то, что долго собирается и не потребуется на момент обновления. Я обычно сношу браузер, rust, gtk3 (стараюсь избегать большого количества зависимого от него в системе), соответственно вместе совсем что от них зависит, так обновление можно хоть на пару лет откладывать.
С 2018 годом ты конечно переборщил - тут реально проще сохранить все конфиги и с нуля собирать. Это займёт времени меньше в несколько раз

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

Скачать соответствующий снапшот и распаковать туда, где у тебя находится дерево (раньше было /usr/portage, но зависит от того, когда ты ставил систему)
distfiles можно не удалять

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

Скачать соответствующий снапшот и распаковать туда, где у тебя находится дерево

Логично :)

Только в https://distfiles.gentoo.org/snapshots/ снапшоты не старше 10 апреля.

Хотя какой-то мануал по скачиванию portage из git нашёлся: https://wiki.gentoo.org/wiki/User:NeddySeagoon/HOWTO_Update_Old_Gentoo

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

в поддиректории squashfs

Спасибо. Не сообразил, что там должно быть.

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

Спасибо за совет, пригодится.

Но в этот раз, когда я его прочитал, у меня уже шла пересборка мира поверх образа 2021 года.

question4 ★★★★★
() автор топика

Полезное замечание: ключ /usr/share/openpgp-keys/gentoo-release.asc может ставиться пакетами app-crypt/openpgp-keys-gentoo-release или sec-keys/openpgp-keys-gentoo-release. Иногда он сносится по –depclean.

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

Да и если у тебя что-то сносится по depclean, будет проще выполнить emerge --deselect=N.

Тогда скрипт будет игнорировать эти пакеты.

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

Не сработало.

>>> Syncing repository 'gentoo' into '/usr/portage'...
/usr/bin/git clone --depth 1 rsync://rsync.gentoo.org/gentoo-portage .
fatal: destination path '.' already exists and is not an empty directory.
!!! git clone error in /usr/portage

Почему-то не восприняло location, пишет в старое.

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

Знаешь почему некоторые не любят обновлять генту? Потому что это муторно. В ней не придумали до сих пор приличного обновления. Тебе придется долго нудно выкачивать пакете, а то вдруг инета не будет и недокачается или еще что. Ну это так - мои фирменные проблемы с инетом.

Даже без этого тебе придется запускать отдельно команды под обновления мира, возможно системы, затем долго нудно читать - а чего там еще пишут? Обновлять модули, чинить питон, чинить перл, обновлять конфиги и еще и еще.

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

А в кальке ты просто добавил одну команду в крон и забыл. Все.

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

А в кальке ты просто добавил одну команду в крон и забыл. Все.

Как мило. В кальке изобрели скрипт для обновления. И это тайное знание не доступно в других дистрах.

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

/usr/bin/git clone --depth 1 rsync://rsync.gentoo.org/gentoo-portage

Должно быть что-то типа

DEFAULT]
 2 main-repo = gentoo
 3 
 4 [gentoo]
 5 location = /var/db/repos/gentoo
 6 sync-type = git
 7 sync-git-verify-commit-signature=true
 8 sync-uri = https://github.com/gentoo-mirror/gentoo.git
 9 #sync-type = rsync
10 #sync-uri = rsync://rsync.gentoo.org/gentoo-portage
11 auto-sync = yes
12 sync-rsync-verify-jobs = 1
13 sync-rsync-verify-metamanifest = yes
14 sync-rsync-verify-max-age = 24
15 sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
16 sync-openpgp-keyserver = hkps://keys.gentoo.org
17 sync-openpgp-key-refresh-retry-count = 40
18 sync-openpgp-key-refresh-retry-overall-timeout = 1200
19 sync-openpgp-key-refresh-retry-delay-exp-base = 2
20 sync-openpgp-key-refresh-retry-delay-max = 60
21 sync-openpgp-key-refresh-retry-delay-mult = 4
22 sync-webrsync-verify-signature = yes

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

Нашёл в чём проблема. PORTDIR прописан в /etc/make.conf. Без него заработало.

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

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

Кальковский скрипт можно добавить в крон. Скрипты других дистрибутивов - нет.

И это не «мило». Это идиотизм со стороны других дистрибутивов. Натуральное вредительство. Приходит человек на линукс и видит, что это говно тупо не работает. Падает, глючит. Умирает от обновлений. Не надо так.

А почему так? Потому что это не дистрибутивы для реальной работы. Это дистрибутивы для абстрактного нечто. Для мира во всем мире. Для свободы для всех. Для распилов. Для того чтобы продать кому нибудь. И для прочей прочей чуши. Понимаешь? У них изначально нет цели - чтобы работало.

А калька - это чисто практичная коммерческая разработка для использования на конкретном коммерческом предприятии. У нее изначальная цель - она должна работать, остальное вторично.

Просто посмотри в рамках генты. Разработчикам генты сложно сделать нормальное обновление? Ну реально - это сложно сделать? Вот почитай обсуждение выше. Прочитай последний релиз кальки и как это реализовали там. Конкретно про длительное необновляторство. Почему они могут, а разработчики генты - нет?

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.