하드 드라이브를 다시 포맷하지 않고 오래된/장난감 기계에서 손상된 apt-get 시스템을 청소하고 수리하는 방법은 무엇입니까?

하드 드라이브를 다시 포맷하지 않고 오래된/장난감 기계에서 손상된 apt-get 시스템을 청소하고 수리하는 방법은 무엇입니까?

apt-get패키지를 다시 설치할 수 있도록 오래된 장난감 기계를 수리하려고 합니다 .

내가 이것을 얻은 후에 sudo apt-get install -f:

$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
 avahi-daemon : Depends: upstart-job
                Depends: upstart (>= 0.6.7-4) but it is not installed
 cron : Depends: upstart-job
 dbus : Depends: upstart-job
        Depends: upstart (>= 0.6.3-6) but it is not installed
 hostname : PreDepends: upstart-job
 ifupdown : Depends: upstart-job
 initscripts : Depends: upstart but it is not installed
 module-init-tools : Depends: upstart-job
 mysql-server-5.1 : Depends: upstart-job
                    Depends: upstart (>= 0.6.7-3) but it is not installed
 netbase : Depends: upstart-job
 openssh-server : Depends: upstart-job
 plymouth : Depends: upstart-job
            Depends: mountall (>= 2.0) but it is not installed
            Recommends: plymouth-theme-ubuntu-text but it is not installed or
                        plymouth-theme
 procps : Depends: upstart-job
 rsyslog : Depends: upstart-job
 screen : Depends: upstart-job
 udev : Depends: upstart-job
 ufw : Depends: upstart-job
 ureadahead : Depends: libnih1 (>= 1.0.0) but it is not installed
              Depends: upstart (>= 0.6.0) but it is not installed
 util-linux : Depends: upstart-job
 vsftpd : Depends: upstart-job
 x11-common : Depends: upstart-job
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Unable to correct dependencies

하지만 설치하려고 하면 다음과 같은 결과 upstart-job가 나타납니다.

$ sudo apt-get install upstart-job
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'upstart' instead of 'upstart-job'
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 plymouth : Depends: mountall (>= 2.0) but it is not going to be installed
            Recommends: plymouth-theme-ubuntu-text but it is not going to be installed or
                        plymouth-theme
 upstart : Depends: libnih-dbus1 (>= 1.0.0) but it is not going to be installed
           Depends: libnih1 (>= 1.0.0) but it is not going to be installed
           Depends: mountall but it is not going to be installed
 ureadahead : Depends: libnih1 (>= 1.0.0) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

업데이트된 작품:

$ sudo apt-get update
Hit:1 http://mirrors.linode.com/ubuntu impish InRelease
Get:2 http://mirrors.linode.com/ubuntu impish-updates InRelease [110 kB]
Get:3 http://mirrors.linode.com/ubuntu impish-backports InRelease [101 kB]
Get:4 http://security.ubuntu.com/ubuntu impish-security InRelease [110 kB]
Fetched 321 kB in 1s (498 kB/s)
Reading package lists... Done

이것은 장난감 기계이기 때문에 다시 포맷하는 것 이외의 급진적인 접근 방식/아이디어에 열려 있습니다.

감사해요!

답변1

upstart는 Ubuntu의 이전 init 시스템으로, 제거되고 systemd로 대체되었습니다. 우분투 버전을 지정하지 않았지만 현재로서는 복구가 불가능할 수 있습니다.

이상적인 상황은 머신에 현재 우분투를 실행할 수 있는 충분한 리소스가 있다고 가정하고 현재 우분투 임피시가 끝날 때까지 하나의 안정적인 버전에서 다음 버전으로 일련의 릴리스 업그레이드를 수행하는 것입니다. 저는 해당 릴리스로 점프하려고 시도하지 않을 것입니다.

실제로 업그레이드 프로세스를 제대로 수행하지 않고 배포판을 현재 우분투 배포판으로 업그레이드하려고 시도하는 것 같습니다. 이로 인해 시작에서 시스템 전환이 상당히 원활하게 발생합니다. 그러나 이것은 큰 변화이다.

자세한 내용을 지정해야 합니다.

  • 어떤 Ubuntu 버전으로 시작해야 할까요?
  • 시작하는 데스크탑
  • 최악의 시나리오는 시스템이 Mir를 실행하고 있습니까? 아니면 바로 Xorg인가요?
  • 초기 적절한 중단을 만들기 위해 수행한 작업은 최신 저장소에서 최신 패키지를 설치하려고 시도했거나 불완전한 버전 업그레이드를 시도하는 것이었습니다. 귀하의 경우에는 후자처럼 보입니다.

데비안에서는 성공 가능성이 상당히 높다고 생각합니다. 하지만 우분투에서는 그다지 많지는 않지만 아마도 여전히 가능할 것입니다.

남은 오류 없이 전체 변환이 완료될 때까지 재부팅하지 않는 것이 핵심입니다.

시작 충돌 오류가 발생하기 때문에 실제로 버전 업그레이드를 수행하지 않고 리포지토리를 업데이트했음을 의미합니다. 이는 현재 버전이 아닌 시작 LTS 버전에서 다음 LTS 버전으로 수행되어야 하는 것이 거의 확실합니다. LTS 릴리스를 건너뛰려고 하면 실패합니다.

시스템을 실행 상태로 두고 재부팅하지 않는 한 오류가 더 이상 나타나지 않을 때까지 패키지를 볼 수 있어야 하며 그런 다음 다시 빌드를 시작할 수 있지만 어느 시점에서든 재부팅을 시도하면 다음과 같은 문제가 발생할 가능성이 있습니다. 성공은 곤두박질칠 것이다.

기본적으로 시스템을 upstart에서 systemd로 변환해야 합니다. 이는 지저분하며 우분투 버전 업그레이드 도구에 맡겨야 합니다.

APT는 일반적으로 이 상황을 처리할 수 있지만 모든 작업을 올바르게 수행해야 하며 직접 재설치하는 것보다 훨씬 오래 걸리고 깨끗하지도 않으므로 이 작업을 수행하는 유일한 실제 이유는 적절한 명령줄을 배우는 것입니다. 도구는 오늘날 여러분이 알고 있는 것보다 훨씬 더 뛰어납니다.

Ubuntu 버전 업그레이드 도구는 꽤 잘 작동하는 경향이 있지만 LTS 버전으로 점프하면 LTS에서 다음 LTS로 업그레이드하거나 마지막 현재 포인트 버전에서 다음 포인트 버전으로(LTS 이전 릴리스 간) 경우에만 안정적으로 작동하는 경향이 있습니다. 즉, 다음 릴리스도 LTS 릴리스가 아닌 경우).

핵심은 제거된 패키지가 중요한 시기와 수동으로 교체해야 하는 시기를 인식하는 것입니다. 때때로 apt는 두 가지를 동시에 교체하면 문제를 더 잘 해결할 수도 있고, 다른 경우에는 한 번에 모두 교체하거나 충돌을 피하기 위해 두 방법을 결합해야 하는 경우도 있습니다. 고급 apt-fu입니다. 즉, 약간의 경험이 필요하거나 귀하의 경우 행운이 더 많이 필요하지만, 현재 수행 중인 작업과 교체해야 할 패키지와 그렇지 않은 패키지를 알고 있다면 일반적으로 작동합니다.

또한 어떤 패키지가 다른 패키지로 대체되었는지, 어떤 패키지가 더 이상 적절하지 않은지, 어떤 패키지를 직접 대체할 수 있는지 확인해야 합니다. apt-cache 검색 [패키지]는 당신의 친구입니다.

이 프로세스는 몇 시간이 걸릴 것으로 예상되며 성공하거나 실패할 것입니다. 실패는 새 우분투를 설치하고 하루 만에 끝나는 것을 의미하며, 성공은 실제로 업그레이드된 항목을 얻고 오래된 신생 항목을 정리한 다음 Go로 전환한다는 것을 의미합니다. systemd의 경우 새 커널을 설치하고 성공적으로 재부팅합니다. 단, 이 시점에서 CLI에서 데스크탑을 다시 설치해야 할 수도 있습니다.

관련 정보