Arch에서 "rm -rf /usr/"을 취소한 후 무엇을 해야 합니까?

Arch에서 "rm -rf /usr/"을 취소한 후 무엇을 해야 합니까?

그래서 저는 최신 Arch 시스템에서 이 작업을 수행했습니다.

[anna@home ~]$ sudo rm -rf /usr/
^C[anna@home ~]$ ^C
[anna@home ~]$ ^C

rm빨리 종료했어요 . /usr/육안으로 볼 수 있는 것은 아무 문제가 없습니다.

손상이 발생했는지 확인할 수 있는 옵션은 무엇입니까? 팩맨 정신 검사를 좀 해야 하나요? 시스템을 다시 시작할 수 있는지 확인하려면 어떤 특정 파일을 확인해야 합니까?

이제부터 다음 항목을 백업해 두겠습니다.모두체계.

답변1

나는 Dennis Kaarsemaker가 옳은 말을 썼다고 생각합니다: 모든 패키지를 다시 설치하십시오.

몇 분 동안 구글링을 해보니 이 사실이 밝혀졌습니다.아치 위키 기사, 모든 패키지 재설치에 대한 섹션이 있습니다. 삭제하는 것이 아니므로 /var/cache/pacman/pkg프로세스는 로컬에서 수행되어야 합니다. 명령은 다음과 같습니다.

pacman -Qenq | pacman -S -

pacamn -Qeng"명시적으로 설치된", "네이티브" 패키지만 그룹별로 나열됩니다. "Extra" 또는 "Community" 저장소의 일부 패키지나 설치한 AUR 패키지가 누락되었을 수 있습니다. 저는 개인적으로 아치 설치가 실행 중이기 때문에 감히 이것을 시도하지 않을 것입니다.

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

다시 설치할 수 있는 모든 패키지를 다시 설치할 수 있습니다. 프로세스 후반에 명시적으로 설치된 종속성을 어떻게 처리할지 잘 모르겠습니다. 이미 종속성으로 다시 설치한 패키지를 다시 설치하게 될 수도 있습니다.

.pacman

답변2

모든 패키지를 (재)설치하고 싶지 않다면 한 가지 방법을 사용할 수 있습니다. 각 패키지에 대해 설치된 모든 파일이 포함된 /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}하고 계속) 주요 아이디어는 꽤 좋다고 생각합니다. :)

관련 정보