삭제 된 "dpkg"디렉토리를 복구하는 방법?


30

불행히도 잠금을 제거하는 동안 dpkg 디렉토리를 삭제했습니다. 실수로 입력

root@sam:~$ rm -r /var/lib/dpkg

이제 패키지를 설치 / 제거하려고하면 다음 오류가 표시됩니다.

E: Could not open lock file /var/lib/dpkg/lock - open (2: No such file or directory)

지금 어떻게해야합니까?


당신이 시도 복사 수퍼 유저로 시스템 자체에 (삭제하지보십시오) 우분투 라이브 CD에서 파일을?
Dominic Hayes

답변:


60

루트 + rm+ -r= 재해

그렇다면 멸망에 대해 무엇을 정죄 했습니까?

ls -l /var/lib/dpkg/
total 9964
drwxr-xr-x 2 root root    4096 nov 28 11:18 alternatives
-rw-r--r-- 1 root root      11 sep 18 14:08 arch
-rw-r--r-- 1 root root 2573807 nov 28 11:18 available
-rw-r--r-- 1 root root 2561322 nov 28 10:25 available-old
-rw-r--r-- 1 root root       8 abr 24  2013 cmethopt
-rw-r--r-- 1 root root     538 sep 25 17:24 diversions
-rw-r--r-- 1 root root     457 sep 25 17:24 diversions-old
drwxr-xr-x 2 root root  483328 nov 28 11:17 info
-rw-r----- 1 root root       0 nov 28 11:18 lock
drwxr-xr-x 2 root root    4096 mar 22  2013 parts
-rw-r--r-- 1 root root     135 abr 24  2013 statoverride
-rw-r--r-- 1 root root 2269113 nov 28 11:18 status
-rw-r--r-- 1 root root 2268870 nov 28 11:18 status-old
drwxr-xr-x 2 root root    4096 nov 28 11:18 triggers
drwxr-xr-x 2 root root    4096 nov 28 11:18 updates

5 개의 디렉토리, 상태 파일 등을 제거했습니다. 따라서 내용을 수정 해보십시오. 먼저 디렉토리를 작성하십시오.

sudo mkdir -p /var/lib/dpkg/{alternatives,info,parts,triggers,updates}

일부 백업을 복구하십시오.

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

이제 dpkg가 작동하는지 확인하십시오 (기도 시작).

apt-get download dpkg
sudo dpkg -i dpkg*.deb

모든 것이 "확인 된"경우 기본 파일도 복구하십시오.

apt-get download base-files
sudo dpkg -i base-files*.deb

이제 패키지 목록 등을 업데이트하십시오.

dpkg --audit
sudo apt-get update
sudo apt-get check

이제 숨을 크게 쉬자. 휴 수행 ls -l /var/lib/dpkg및 위의 목록과 비교합니다. 일부 -old파일이 없으면 내일있을 것이므로 걱정하지 마십시오.


1
답변 주셔서 감사합니다. 여기에 언급 한대로 단계를 수행했지만 sudo dpkg -i dpkg * .deb 를 실행하는 동안 dpkg 로 오류가 발생합니다 . 오류 : 패키지 정보 파일을 열지 못했습니다`/ usr / local / var / lib / dpkg / status '읽기 : 해당 파일 또는 디렉토리 없음
Sambit

@Sambit Impossible. 질문을 편집하고 완전한 결과를 추가 할 수 있습니까?
Braiam

@Sambit ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directory은 내가 얻는 유일한 것입니다. /usr/localdpkg 파일을 설치할 장소가 아닙니다.
Braiam

여기에서도 같은 문제가 있습니다. 우분투 /usr/local/대신에 설치하려고합니다 /var/lib/dpkg. 그것을 지적하는 방법 /var/lib/dpkg?
bagustris

@bagustris는 우분투 저장소에서 패키지를 다운로드합니다.
Braiam

2

dpkg (Debian package management system) 패키지는 데비안 소프트웨어 패키지의 설치 및 제거를 처리하기위한 저수준 인프라를 제공하므로 제거하는 것은 좋은 생각이 아니므로

사용하여 파일을 다운로드 wget:

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.16.1.2ubuntu7.2.tar.bz2

xxx 폴더에서 추출하십시오.

cd xxx
./configure
make
sudo make install

그것이 효과가 있기를 바랍니다.


이 단계를 거쳐 성공적으로 설치되었습니다. 그러나 다시 같은 문제가 발생합니다.
Sambit

./configure가 실패했거나 성공 했습니까?
Sukupa91

이미 다시 시작했는데 내 질문에서 언급 한 것과 동일한 오류가 발생합니다. "Ubuntu Software Center", "Update Manager"와 같은 내장 소프트웨어도 작동하지 않습니다.
Sambit

야 wget 첫 번째 명령을 업데이트했습니다, 같은 절차를 wget 명령으로 시작해보십시오
Sukupa91

1
오류가 발생하면 cp : stat`/ var / lib / dpkg / status-old '를 통계 할 수 없습니다 : 해당 파일이나 디렉토리가 없습니다 . "dpkg"디렉토리가 시스템에 없기 때문에이 문제에 직면하고 있습니다.
Sambit

1

백업에서 시스템을 복구하십시오. 백업을 제대로 했습니까? 이러한 상황 (사용자 오류) 및 하드웨어 오류와 같은 예기치 않은 상황을 처리하려면 시스템 및 데이터를 백업해야합니다. 여기에 설명 된 것과 같은 백업을 생성하지 못한 경우 데이터 복구를 시도 할 수 있습니다 .

앞으로는 치명적인 데이터 손실을 피하기 위해 정기적으로 백업 하는 것이 좋습니다 . 그리고 @Braiam이 " root + rm + -r = 재해 " 라고 말한 것처럼


-2

아래 단계를 따라 파일을 복구 apt-get하거나 최소한 또는 dpkg작동 하는지 확인하십시오 .

sudo cp /var/backups/dpkg.status.0  /var/lib/dpkg/

sudo mv /var/backups/dpkg.status.0  /var/backups/status

sudo mkdir /var/lib/dpkg/updates

이 테스트 후에는 작동하는지 여부입니다.

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

그것이 효과가 있기를 바랍니다. 아래에 의견이 없다면. 명심하십시오 sudo + rm -rf. 게임을하는 동안 극도의주의를 기울이십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.