Что сделать, после того, как отменено “комнату-rf/usr /” на Arch?

myparameter=foobar
ssh user@server "myscript $myparameter"

Это выполнится myscript foobar на сервере.

4
13.07.2013, 17:37
2 ответа

Я думаю, что Dennis Kaarsemaker записал правильную вещь: переустановите все пакеты.

Поиск с помощью Google нескольких минут показал эту статью Wiki Arch с разделом по переустановке всех пакетов. Так как Вы не удалили /var/cache/pacman/pkg, процесс должен произойти локально. Команда похожа на это:

pacman -Qenq | pacman -S -

pacamn -Qeng только списки, "явно установленные", "собственные" пакеты группой. Это может пропустить некоторые пакеты из "дополнительных" или "общественных" репозиториев или любые пакеты АУРА, которые Вы установили. Я лично боюсь попробовать это, потому что мои установки Arch работают, но

pacman -Qn | awk '{print $1}' | pacman -S -

мог бы переустановить каждый пакет, он может. Я не уверен, как это обработало бы зависимость, которая установлена explictly позже в процессе. Вы могли бы закончить тем, что переустановили пакеты, которые уже стали переустановленными как зависимость.

Если Вам удалось удалить pacman, Я думаю, что процесс просто мог бы включить частичную "новую установку" использование установки Arch ISO, но я боюсь рекомендовать это.

4
27.01.2020, 20:54
  • 1
    Спасибо. pacman к счастью, все еще там. –  Anna 13.07.2013, 18:19
  • 2
    @Anna - обновите свой вопрос если и при попытке чего-то так, чтобы, по крайней мере, я знал, что сделать для моих установок Arch. Я думаю, что Вы поразили угловой случай - не, многие люди сделали то, что Вы сделали по крайней мере публично. Ответы Upvoted могли бы быть неправильными ответами в Вашей ситуации. –  Bruce Ediger 13.07.2013, 19:07
  • 3
    я попытался переустановить все с Вашей первой командой и закончил с 8 000 строк "xorg-server-devel:/usr/include/xorg/xorg-server.h существует в файловой системе" (с различными именами пакета и именами файлов). pacman -Qo говорит, что никакой пакет не владеет теми файлами. –  Anna 13.07.2013, 19:41
  • 4
    Все те файлы за исключением четыре лежат в/usr/. Большинство существует, все же. –  Anna 13.07.2013, 19:43
  • 5
    Оказывается, что только пара пакетов (kdebase-время-выполнения kdeutils-kwallet делают подвижный oxygen-icons-svg xorg-server-common xorg-server-devel) содержала те 8 000 файлов. Я переустановил их успешно использование --force и снова переустанавливаю все пакеты с Вашей первой командой теперь. –  Anna 13.07.2013, 20:10

Если Вы не хотите к установке (ре) всех пакетов, можно сделать прием: проверить /var/lib/pacman/localподкаталоги и их files, который содержит все установленные файлы на пакет.

Так простое, не протестированное (и не прекрасный) сценарий:

cd /var/lib/pacman
for package in *; do
    for file in $(grep ^usr ${package}/files); do
        [ -e "/${file}" ] || echo Bad package: ${package}
    done
done

Можно улучшить этот сценарий (возможно, если ${file} не существует, работать pacman -S ${package} и продолжите), но я думаю, что основная идея не слишком плоха :)

1
27.01.2020, 20:54

Теги

Похожие вопросы