Arch: 팩맨 데이터베이스를 안전하게 저장하고 복원하세요

Arch: 팩맨 데이터베이스를 안전하게 저장하고 복원하세요

pacman실행 후 동기화 데이터베이스를 백업 하여 실패한 시스템 업그레이드를 되돌리는 데 사용할 수 있는 pacman -Sy"복원 지점"을 만들고 싶습니다 . pacman -Suu더 많은 배경을 찾을 수 있습니다여기.

/var/lib/pacman/db.lck저장/복원 시 데이터베이스가 변경되지 않도록 팩맨 데이터베이스를 수동으로 잠그고 싶습니다 .

자동으로 확인/생성하는 방법은 무엇입니까 /var/lib/pacman/db.lck?

답변1

데이터베이스 잠금

mkdir이는 원자성 작업이므로 동시성 문제를 피할 수 있습니다.

sudo mkdir /var/lib/pacman/db.lck 2>/dev/null && echo Got lock || echo Locked out

pacman -Syy다른 쉘에서 실행하는 동안 위의 내용을 테스트했습니다. pacman 실행 시 출력은 "Locked out"이고, 완료 후 출력은 "Got lock"입니다.

대신 pacman -Syy디렉터리가 존재하는 동안에는 데이터베이스를 잠글 수 없다고 말합니다.

지원

나는 paranoia_level=9를 썼습니다bash스크립트/var/lib/pacman/backupISO8601 날짜로 명명된 디렉터리 에 동기화 데이터베이스를 안전하게 저장합니다 .

또한 스크립트는 다음과 같은 비종속 패키지 목록을 저장합니다.

  • 모든 패키지
  • 패키지 동기화
  • 외국(예: AUR) 소포

백업 사용량

-b데이터베이스의 다른 위치를 지정하려면 이 옵션을 사용합니다 . 예:

pacman -Suu -b /var/lib/pacman/backup/2017-02-26T12:55:26+07:00

관련 정보