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/backup
ISO8601 날짜로 명명된 디렉터리 에 동기화 데이터베이스를 안전하게 저장합니다 .
또한 스크립트는 다음과 같은 비종속 패키지 목록을 저장합니다.
- 모든 패키지
- 패키지 동기화
- 외국(예: AUR) 소포
백업 사용량
-b
데이터베이스의 다른 위치를 지정하려면 이 옵션을 사용합니다 . 예:
pacman -Suu -b /var/lib/pacman/backup/2017-02-26T12:55:26+07:00