일반적인 증상
apt install이 “종속성이 충족되지 않음”을 보고합니다.dpkg이 중단되어 설치를 계속할 수 없습니다.- “깨진 패키지를 보관했습니다” 메시지가 나타납니다.
- 패키지 상태는 “반 설치” 또는 “반 구성”입니다.
Note
대부분의 패키지 문제는 처음 세 단계(dpkg --configure -a, apt --fix-broken install, apt update && apt upgrade)를 통해 해결할 수 있습니다. 순서대로 시도해보고 고급 수리 방법을 사용하기 위해 서두르지 마십시오.
표준 수리 절차
다음 단계를 순서대로 시도해 보세요. 처음 몇 단계를 수행하면 일반적으로 문제가 해결됩니다.
1단계: 중단된 dpkg 수정
sudo dpkg --configure -a2단계: 종속성 수정
sudo apt --fix-broken install3단계: 업데이트 및 정리
sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt autoclean고급 수리
강제 수정 패키지
# View problematic packages
dpkg -l | grep -E "^..[^i ]"
# Force reinstall a package
sudo apt install --reinstall PACKAGE_NAME
# Force remove a broken package
sudo dpkg --remove --force-remove-reinstreq PACKAGE_NAME패키지 캐시 지우기
# Delete all downloaded package cache
sudo apt clean
# Delete only outdated packages
sudo apt autoclean
# Manual cleanup
sudo rm /var/cache/apt/archives/*.deb
sudo rm /var/cache/apt/archives/partial/*.debdpkg 잠금 수정
“관리 디렉터리를 잠글 수 없습니다”라는 메시지가 표시되는 경우:
# Check if other apt/dpkg processes are running
ps aux | grep -E "apt|dpkg"
# If you confirm no other processes are running, delete the lock files
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -adpkg 데이터베이스 재구축
dpkg 데이터베이스가 손상된 극단적인 경우:
# Back up existing database
sudo cp -r /var/lib/dpkg /var/lib/dpkg.backup
# Restore the status file from the system's daily backup (status is dpkg's core database)
ls -t /var/backups/dpkg.status.* # List available backup snapshots
sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status # .0 is newest; use an older snapshot if needed
sudo dpkg --clear-avail
sudo apt update종속성 충돌 문제 해결
패키지 종속성 보기
# View dependencies of a package
apt depends PACKAGE_NAME
# View which packages depend on a package
apt rdepends PACKAGE_NAME
# Simulate installation to see conflicts
apt install -s PACKAGE_NAMEPPA로 인한 충돌
타사 PPA는 종속성 충돌의 일반적인 원인입니다.
# List added PPAs
grep -rh "^deb " /etc/apt/sources.list.d/ | sort
# Disable a problematic PPA
sudo add-apt-repository --remove ppa:xxx/yyy
# Downgrade PPA-installed packages to official versions
sudo apt install ppa-purge
sudo ppa-purge ppa:xxx/yyy버전 보존 충돌
# View held packages
apt-mark showhold
# Unhold a package
sudo apt-mark unhold PACKAGE_NAMESnap 패키지 문제
# View snap status
snap list
# Fix snap
sudo snap refresh
# Reinstall a problematic snap
sudo snap remove PACKAGE_NAME
sudo snap install PACKAGE_NAME최후의 수단
위의 방법 중 어느 것도 효과가 없으면 다음을 시도해 보십시오.
# Completely reinstall the package management system (use with caution)
sudo apt install --reinstall dpkg apt
# Or use aptitude for interactive conflict resolution
sudo apt install aptitude
sudo aptitude install PACKAGE_NAME
# aptitude will offer multiple solutions to choose from예방 팁
- 신뢰할 수 없는 타사 PPA 추가 방지
- 다른 Ubuntu 버전의 소프트웨어 소스를 혼합하지 마십시오.
sudo apt update && sudo apt upgrade을 정기적으로 실행apt install -s을 사용하여 설치를 시뮬레이션하고 충돌을 확인하세요.- 시스템 패키지 버전을 일관되게 유지하십시오. 시스템 패키지를 재정의하는
.deb파일을 수동으로 설치하지 마십시오.