손상된 업데이트 및 패키지 혼란: 오래된 패키지를 수동으로 제거하려면 어떻게 해야 합니까?

손상된 업데이트 및 패키지 혼란: 오래된 패키지를 수동으로 제거하려면 어떻게 해야 합니까?

16.04에서 18.04로 전환한 후 do-release-upgrade문제가 발생하고 시스템이 "중간" 상태로 남아 있어 많은 종속성 문제가 중단되었습니다. 내 패키지 트리가 엉망이고 절망적입니다... ;-)

나는 많은 것을 시도했지만 ( 를 사용하여 dpkg --configure -a패키지를 무작위로 제거하는 것 dpkg --force depends -P <pkg-name>, 그리고 다른 것들을 포함하여) 현재는 다소 정체되어 있습니다.

그래서 내가 시도할 때:

$ sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
   (here 20 lines)
The following additional packages will be installed:
... (here 5 lines)
 Suggested packages:
 ... more
Recommended packages:
 ... more
The following packages will be REMOVED:
 ... more
The following NEW packages will be installed:
 ... more (10 lines)
28 upgraded, 6 newly installed, 1 to remove and 327 not upgraded.
228 not fully installed or removed.
Need to get 0 B/13,3 MB of archives.
After this operation, 2 771 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

여기까지는 두려울 것이 없습니다. 하지만 지금은 다음을 입력합니다 Y.

Extracting templates from packages: 100%
(Reading database ... 977800 files and directories currently installed.)
Removing ubuntu-advantage-tools (27.0.2~18.04.1) ...
Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "/usr/lib/python3/dist-packages/uaclient/apt.py", line 9, in <module>
    from uaclient import gpg
  File "/usr/lib/python3/dist-packages/uaclient/gpg.py", line 3, in <module>
    import shutil
ModuleNotFoundError: No module named 'shutil'
dpkg: error processing package ubuntu-advantage-tools (--remove):
 installed ubuntu-advantage-tools package pre-removal script subprocess returned error exit status 1
Errors were encountered while processing:
 ubuntu-advantage-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

제가 이해한 바에 따르면 이것은 Python 오류처럼 들립니다 shutil. . 그래서 제가 생각했던 것을 수동으로 다운로드했습니다. https://packages.ubuntu.com/bionic/python-backports-shutil-get-terminal-size 다음을 사용하여 수동으로 설치했습니다.

sudo dpkg -i python-backports-shutil-get-terminal-size_1.0.0-5_all.deb

그러나 apt --fix-broken install다시 해보면 같은 지점에서 끝난다.

저는 Python에 대한 지식이 부족하여 이것이 실제 문제인지 확신할 수 없지만 어떤 도움이라도 환영합니다. 그렇지 않으면 다음 단계에서는 아마도 처음부터 다시 설치하게 될 것입니다. 그러나 저는 이를 피하고 싶습니다.

현재는 패키지를 수동으로 설치할 수 있습니다(다운로드:https://packages.ubuntu.com/then dpkg -i) 하지만 그게 전부이고 다른 모든 것은 실패합니다.

예를 들어, 다음을 설치하려고 하면 libpython3.6-stdlib:

$ sudo apt-get install libpython3.6-stdlib

나는 얻다:

libpython3.6-stdlib : Depends: libpython3.6-minimal (= 3.6.9-1~18.04ubuntu1.4) but 3.6.13-1+xenial2 is to be installed

그 말은 내가아직16.04(Xenial)의 패키지가 있습니다.

수동으로 어떻게 할 수 있나요?제거하다모든 16.04 패키지?

추가 정보(이제 머신은 콘솔로만 부팅됩니다):

  • $ python --version=> 파이썬 3.6.13
  • $ lsb_release -a사용할 수 없습니다
  • $ uname -a4.15 커널이라고 합니다(18.04와 일치하는 것 같습니다).

답변1

FWIW: 사실 중요한 점은 여기에 있었습니다.

dpkg: error processing package ubuntu-advantage-tools (--remove):
 installed ubuntu-advantage-tools package pre-removal script subprocess returned error exit status 1

패키지에 대한 "사전 제거" 스크립트의 실패로 인해 전체 프로세스가 실패했습니다 ubuntu-advantage-tools(그게 뭔지 모르겠어요!).

그래서 나는 이렇게 했습니다:

$ sudo mv /var/lib/dpkg/info/ubuntu-advantage-tools.prerm /var/lib/dpkg/info/ubuntu-advantage-tools.prerm_OLD

그리고 나는 그 명령을 완수할 수 있었다 sudo apt --fix-broken install.

재부팅한 다음 다음을 사용하여 해결된 다른 문제(키보드 인식되지 않음)다른 질문, 복구 모드로 부팅한 후:

$ sudo apt-get install xserver-xorg-input-all

마침내 그래픽으로 부팅할 수 있었지만... 여전히 xenial(16.04)을 참조하는 패키지 관리자에 몇 가지 문제가 있습니다. 또 다른 질문을 게시하겠습니다.

답변2

이것은 매우 아픈 시스템처럼 들립니다. 다시 설치하여 불행한 상황에서 벗어나고 싶을 수도 있습니다. 별도의 파일 시스템이 아직 없다면 /home홈 디렉터리와 작업한 모든 항목을 복사하고 다시 시작하여 깨끗한 시스템을 다시 만드세요.

또한 일부 중요하지 않은 구성 파일을 복구할 가치가 있는 경우를 대비하여 복사해 두겠습니다 /etc(그러나 꼭 필요한 경우가 아니면 새 시스템에 복사하는 것을 보류하겠습니다).

이렇게 생각해보세요. 해당 시스템은 오랫동안(16.04이므로 2016년 직후에) 잘 작동했습니다. 편히 쉬게 해주세요. ;-) 이제 새롭고 깨끗한 것을 할 시간입니다.

나는 새로 설치된 우분투를 내가 가장 사용하기 편한 형태로 만들기 위해 어떤 일을 하는지 스스로 체크리스트를 만든 적이 있습니다. 아마도 당신은 그것으로부터 영감을 얻을 수 있을 것입니다:https://github.com/shundhammer/huha-linux-tips/blob/master/doc/ubuntu-tips.md(일부 부분은 약간 구식일 수 있습니다. 신경쓰지 마세요)

관련 정보