LINUX.ORG.RU

Выстрелил себе в ногу, удалил менеджер пакетов pacman

 , ,


2

1

Howdy!

Manjaro linux, последний год постоянные проблемы с обновлениями - адъ зависимостей. Уже рутина, выработал метод решать проблему по шаблону - удаляю проблемный пакет не трогая его зависимостей, и сразу ставлю обратно. Зависимости восстанавливаются, и можно перезапустить обновление системы:

 sudo pacman -Syu
:: Обновление баз данных пакетов...
 core не устарел
 extra не устарел
 community не устарел
 multilib не устарел
:: Запускается полное обновление системы...
:: Заменить pamac-common на extra/libpamac? [Y/n] 
разрешение зависимостей...
проверка конфликтов...
ошибка: не удалось подготовить транзакцию (не удалось удовлетворить зависимости)
:: installing pacman (6.0.0-1) breaks dependency 'pacman<5.3' required by package-query

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

yay -Rdd pacman
предупреждение: pacman указан в HoldPkg.
:: Пакет из HoldPkg обнаружен в списке целей. Продолжить? [y/N] y

Пакеты (1) pacman-5.2.2-6

Будет освобождено:  4,53 MiB

:: Удалить эти пакеты? [Y/n] 
:: Обработка изменений пакета...
(1/1) удаление pacman                                                                           [########################################################] 100%
предупреждение: /etc/pacman.conf сохранён как /etc/pacman.conf.pacsave
:: Запуск post-transaction hooks...
(1/2) Reloading system manager configuration...
(2/2) Arming ConditionNeedsUpdate...
pacman
bash: pacman: команда не найдена

И вот теперь вопрос, как мне установить его обратно?

В https://wiki.archlinux.org/title/Pacman#Manually_reinstalling_pacman я что-то не очень понял… Может надо как-то собрать из сорцов? Какой правильный метод восстановления?

Записываешь arch iso на флешку, грузишься в него, монтируешь раздел с Manjaro в /mnt, выполняешь:

pacstrap /mnt pacman

Должно сработать.

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

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

Ради пакета из AUR удалить пакет из [core]…

Казалось бы очевидно — удали package-query

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

Я попробовал просто распаковать:

sudo tar -xvpf pacman-6.0.0-5-x86_64.pkg.tar.zst -C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO

Вроде получилось, но при обновлении:

sudo pacman -Syyuu
:: Обновление баз данных пакетов...
 core                                                               168,6 KiB   562 KiB/s 00:00 [########################################################] 100%
 extra                                                             1923,9 KiB  2,38 MiB/s 00:01 [########################################################] 100%
 community                                                            6,6 MiB  1758 KiB/s 00:04 [########################################################] 100%
:: Запускается полное обновление системы...
:: Заменить pamac-common на extra/libpamac? [Y/n] 
разрешение зависимостей...
проверка конфликтов...
ошибка: не удалось подготовить транзакцию (не удалось удовлетворить зависимости)
:: installing alsa-lib (1.2.5.1-3) breaks dependency 'alsa-lib=1.2.5' required by lib32-alsa-lib
:: installing libcap (2.51-1) breaks dependency 'libcap=2.50' required by lib32-libcap
:: installing libpcap (1.10.1-1) breaks dependency 'libpcap=1.10.0' required by lib32-libpcap

Пробовал все варианты y и n… Вот как бы с этим зоопарком справиться?

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

Да, я восстановил старый конфиг: «предупреждение: /etc/pacman.conf сохранён как /etc/pacman.conf.pacsave»

А что за мультилиб, почему его не было включено, если без него система не обновляется?

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

Система без него у тебя не обновляется, потому что у тебя из него установлены пакеты. Он либо включен в Manjaro по умолчанию, либо ты его сам когда-то включил в конфиге.

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

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

pacman: '/usr/share/man/man5/BUILDINFO.5.gz' существует в файловой системе
pacman: '/usr/share/man/man5/PKGBUILD.5.gz' существует в файловой системе
pacman: '/usr/share/man/man5/alpm-hooks.5.gz' существует в файловой системе
pacman: '/usr/share/man/man5/makepkg.conf.5.gz' существует в файловой системе
pacman: '/usr/share/man/man5/pacman-hooks.5.gz' существует в файловой системе
pacman: '/usr/share/man/man5/pacman.conf.5.gz' существует в файловой системе
pacman: '/usr/share/man/man8/makepkg.8.gz' существует в файловой системе
pacman: '/usr/share/man/man8/pacman-conf.8.gz' существует в файловой системе
pacman: '/usr/share/man/man8/pacman-key.8.gz' существует в файловой системе
pacman: '/usr/share/man/man8/pacman.8.gz' существует в файловой системе
pacman: '/usr/share/man/man8/repo-add.8.gz' существует в файловой системе
pacman: '/usr/share/man/man8/repo-remove.8.gz' существует в файловой системе
pacman: '/usr/share/man/man8/vercmp.8.gz' существует в файловой системе
pacman: '/usr/share/pacman/PKGBUILD-split.proto' существует в файловой системе
pacman: '/usr/share/pacman/PKGBUILD-vcs.proto' существует в файловой системе
pacman: '/usr/share/pacman/PKGBUILD.proto' существует в файловой системе
pacman: '/usr/share/pacman/proto.install' существует в файловой системе
pacman: '/usr/share/pkgconfig/libmakepkg.pc' существует в файловой системе
pacman: '/usr/share/zsh/site-functions/_pacman' существует в файловой системе
plasma-workspace: /usr/lib/qt/plugins/kcm_formats.so exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/lib/qt/plugins/kcms/kcm_autostart.so exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/lib/qt/plugins/kcms/kcm_nightcolor.so exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/lib/qt/plugins/kcms/kcm_notifications.so exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/ca/kcontrol/autostart/index.cache.bz2 exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/ca/kcontrol/autostart/index.docbook exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/ca/kcontrol/formats/index.cache.bz2 exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/ca/kcontrol/formats/index.docbook exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/ca/kcontrol/notifications/index.cache.bz2 exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/ca/kcontrol/notifications/index.docbook exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/share/doc/HTML/de/kcontrol/autostart/index.cache.bz2 exists in filesystem (owned by plasma-desktop-primex)
hikikomori ★★★
() автор топика
Ответ на: комментарий от shleemypants

Это файлы pacman, установленного вручную.

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

Я попробовал просто распаковать

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

Не надо было в / распаковывать. Распаковал бы во временную папку и из нее установил pacman:

pacman -S pacman
SR_team ★★★★★
()
Последнее исправление: SR_team (всего исправлений: 2)
Ответ на: комментарий от SR_team

Он бы не смог установить pacman без pacman. Или ты имеешь в виду из временной папки выполнить:

./pacman -S pacman

Он бы в таком случае ругался на отсутствие pacman.conf и libalpm.

В любом случае, эти ошибки «файл существует» решаются переустановкой pacman через сам pacman после распаковки его в корень, ничего страшного в них нет.

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

Спасибо! А я мучался с: --overwrite /usr/*

sudo pacman  --overwrite /usr/* -Syu
предупреждение: файл /etc/pacman.conf, строка 20: параметр 'SyncFirst' в секции 'options' не распознан.
:: Обновление баз данных пакетов...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
ошибка: не найдена цель: /usr/include
предупреждение: '/usr/include' -- файл. Вы имели ввиду '-U/--upgrade' вместо '-S/--sync'?

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

pacman-key --init; pacman-key --populate archlinux manjaro

Но остался какой-то plasma-desktop-primex.

ошибка: не удалось завершить транзакцию (конфликтующие файлы)
plasma-workspace: /usr/lib/qt/plugins/kcm_formats.so exists in filesystem (owned by plasma-desktop-primex)
plasma-workspace: /usr/lib/qt/plugins/kcms/kcm_autostart.so exists in filesystem (owned by plasma-desktop-primex)
 
plasma-workspace: /usr/share/locale/ast/LC_MESSAGES/kcm_nightcolor.mo exists in filesystem (owned by plasma-desktop-primex)

  и так далее...

Успешно:

sudo pacman -S plasma-desktop-primex --overwrite "*"

Но толку ноль, и обновление системы - не успешно.

sudo pacman -Syu 

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

sudo pacman -Syu --overwrite "*"
hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 2)
Ответ на: комментарий от Kron4ek

Он бы в таком случае ругался на отсутствие pacman.conf и libalpm.

Разве? Я вроде так делал, потому что у хостера был не свежий арч и он не мог .zst поставить. Или у pacman-static нет этой проблемы?

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

Pacman-static, скорее всего, такой проблемы не имеет, но я его не пробовал. Впрочем, с обычным это решается копированием pacman.conf в /etc, а libalpm тоже можно либо скопировать в /usr/lib, либо через LD_LIBRARY_PATH подгрузить.

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

Честно, не знаю почему у тебя столько конфликтов пакетов возникает. По идее, у plasma-desktop-primex в provides и в conflicts должен быть прописан plasma-workspace, раз он уже содержит его файлы, но его там видимо нет.

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

Вообще, обновление всей системы с этим параметром вполне может вызвать последствия, но в данном случае ты только один пакет затираешь, вряд ли что-то страшное случится. Однако в будущем, скорее всего, опять возникнут такие ошибки, когда plasma-desktop-primex обновится.

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