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

А вот давайте предположим, что я удалил /usr/lib

 


0

1

И скопировал его стоковое содержимое с лайвсиди.

Могу ли я пройтись по списку пакетов, проверить целостность каждого и переустановить поломавшиеся?

Перемещено hobbit из general


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

Предположим, dpkg --verify выдаёт кучу срабатываний, но я же не могу просто взять все имена пакетов и бросить их на переустановку. Там же зависимости есть.

bo4ok
() автор топика

Ты клоунов коллекционируешь или скор надрачиваешь?
Да, ты можешь тупо переустановить все пакеты. Можно не проверять на целостность, а тупо все переустановить. По первой ссылке в гугле даже команду для этого найдёшь.

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

Краткий ответ на все твои вопросы - бэкап.

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

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

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

Переустановил и… Любимой обоины нет, банального mc нет… Да и как-всегда окажется, откуда переустановить тоже нет.

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

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

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

Забавно. Сам-же и подтверждаешь, что переустановка - это только начало пути по восстановлению «как-было». Да, отдельный хомяк для того и создают, чтобы сохранить там любимую обоину…

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

Там есть про бессмысленный и беспощадный пердолинг, которого можно избежать, если делать бэкапы (или не косячить, ага).

К тому же, я отвечал на твой ответ andytux’у по поводу - ты не поверишь - бэкапов. А конкретно - быстроты их восстановления, которое в случае использования снэпшотов ФС точно быстрее, чем переустановка.

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

Да, отдельный хомяк для того и создают, чтобы сохранить там любимую обоину…

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

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

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

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

Логично, про то и вопрос.

Я могу накостылять скрипт, упорядочивающий список повреждённых пакетов с учётом зависимости, но не делает ли того же какая-то стандартная утилита?

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

но не делает ли того же какая-то стандартная утилита?

О, ура, хоть один осмысленный вопрос от ТС в теме!

Можно взять каталог /var/lib/dpkg, взять оттуда список установленных пакетов, скачать их все и переустановить в chroot’е

Dimez ★★★★★
()

Проще уж тогда заново накатить ОС с лайвсд. Если ты ставил обновления для ОС а лайвсд образ старый то получишь проблемы с библиотеками в /lib , где обычно живет glibc.

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

Я могу накостылять скрипт, упорядочивающий список повреждённых пакетов с учётом зависимости, но не делает ли того же какая-то стандартная утилита?

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

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

ну фыр, я с самого начала это подразумевал.

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

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

я с самого начала это подразумевал.

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

Сделай так, чтобы заработал apt и сделай apt install --reinstall $LIST_OF_PACKAGES

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

Мда. Шаманства вышли следующие:

- загрузиться с лайва, примонтировать диск
- подкинуть /usr/lib с лайва, чтобы заработал апт
- сделать чрут на получившееся
- взять список пакетов с мёртвой системы: dpkg --get-selections > list.txt
- добавить в список ядро, на котором работает лайвсиди, без этого будут приключения
- выйти из чрута, импортировать пакеты на лайв: dpkg --clear-selections; dpkg --set-selections < list.txt
- установить на лайв пакеты: apt-get dselect-upgrade
- удалить usr/lib, скопировать на его место /usr/lib
- перезагрузиться, пошаманить, чтобы поднялся LVM/RAID/что там ещё сломалось
- вручную поднять сеть, потому что NM не любит, когда с ним так обходятся, сделать apt update
- найти пакеты, затронутые изменениями в предыдущих файлах: dpkg --verify 2>/dev/null | grep -o '/usr/lib.*$' | uniq -u | xargs dpkg -S | grep -o '^[a-z0-9\+-.]*' | uniq -u > broken.txt
- попытаться переустановить всё пострадавшее: cat broken.txt | xargs apt install --reinstall -y
- больше не запускать те кривые мейкфайлы

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

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

Можно было тупо взять список всех установленных пакетов, скачать *.deb с ними (или может они даже в кэше есть?), распаковать содержимое всех этих deb’ов в один и тот же отдельный каталог, а затем тупо забрать из него /usr/lib, и сунуть по месту назначения.

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

у меня после подкидывания файлов с лайва 308 повреждённых осталось, сколько их было изначально, даже думать не хочу)

Довольно трудоёмко всё это обработать + наверняка какой-нибудь придурковатый пакет создаёт файлы/симлинки постинстом.

bo4ok
() автор топика

А вот давайте предположим, что я

с разбегу ударился головой ап стену.

Могу ли я пройтись по списку пакетов, проверить целостность каждого и переустановить поломавшиеся?

Вам точно можно. А учитывая то, что вы даже дистр не упомянули 100500% Вам можно всё.

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

Возможно, это синдром утёнка,

Точно нет, это реально правильный вариант. Одно дело когда у вас какойнидь /tmp в /dev/null улетит, а другое хомяк.

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

Ох, старею, вродеж про Кали опять можно… Или нельзя…

будьте добры ответить, чем восстановление библиотек на кали принципиально отличается от такового любом другом deb- или rpm-based дистрибутиве.

Та ничем, берете и копируете… из бэкапа… ну или если «ничего полезного там не было» из аналогичной системы.

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

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

Просто поддержали твою :)

Dimez ★★★★★
()