![데비안에서 오래된 패키지를 삭제하는 방법은 무엇입니까?](https://linux55.com/image/40534/%EB%8D%B0%EB%B9%84%EC%95%88%EC%97%90%EC%84%9C%20%EC%98%A4%EB%9E%98%EB%90%9C%20%ED%8C%A8%ED%82%A4%EC%A7%80%EB%A5%BC%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 sid를 실행 중이고 시도하는 중입니다.학년 전반에 걸쳐내 시스템이 i386에서 amd64로 바뀌었고 제거할 수 없는 일부 오래된 패키지를 발견했습니다. 배경지식: 저는 감자를 시작했을 때부터, 혹은 그보다 더 일찍부터 이 시스템을 사용했습니다.
그러한 패키지가 약 100개 있으므로 일반적이거나 스크립트 가능한 답변을 원합니다. 예는 다음과 같습니다.
bminton:/var/cache/apt/archives# dpkg --purge libstdc++2.10-dev
(Reading database ... 1352516 files and directories currently installed.)
Removing libstdc++2.10-dev (1:2.95.4-27) ...
install-info: No dir file specified; try --help for more information.
dpkg: error processing package libstdc++2.10-dev (--purge):
subprocess installed pre-removal script returned error exit status 1
Errors were encountered while processing:
libstdc++2.10-dev
prerm 스크립트`/var/lib/dpkg/info/libstdc++2.10-dev.prerm 스크립트에는 다음 내용이 포함되어 있습니다.
#! /bin/sh -e
install-info --quiet --remove iostream-2.95
수동으로 실행할 때 다음 오류가 발생합니다 install-info --quiet --remove iostream-2.95
.
install-info: No dir file specified; try --help for more information.
답변1
dpkg
install-info
GNU 스크립트를 대체하는 나만의 스크립트가 있었습니다 . 하나변경사항에 대한 이메일패키지에 대한 제안 사항이 제공됩니다(형식 추가).
이러한 패키지는 해당 정보 파일을 배치하고 스크립트(postinst 및 prerm)가 있는 경우 스크립트를
/usr/share/info
호출해야 합니다 .update-info-dir
정보 패키지를 제안/추천할 수 있습니다.
따라서 제가 제안하는 것은 /var/lib/dpkg/info/libstdc++2.10-dev.prerm
해당 줄을 편집(예, 편집)하고 주석 처리하는 것 입니다 install-info ...
. 이 오류가 발생한 다른 패키지에 대해서도 동일한 작업을 수행합니다. 패키지를 지운 후 수동으로 실행하세요 update-info-dir
.
참고: 나중에 업그레이드한 후에는 시스템에서 더 이상 사용되지 않는/로컬 패키지 목록을 확인하고 필요하지 않은 경우 삭제해야 합니다. 그렇지 않으면 매우 오래된 유지관리자 스크립트를 사용하게 될 것입니다.
답변2
나는 내 자신의 명령을 만들고 install-info
앞에 넣어서 /usr/bin
이 문제를 해결했습니다 $PATH
. 스크립트는
#!/bin/sh
/usr/bin/install-info "$@" || true
답변3
저는 Linux를 처음 접했기 때문에 이것은 아마도 나쁜 조언일 수 있지만 더 안전한 솔루션($PATH 변경 등)을 시도한 후에 나에게 효과가 있었던 유일한 방법은 이전 설치 정보를 "제거"(이름 바꾸기)하는 것뿐이었습니다.
> which install-info
/usr/bin/install-info
> mv /usr/bin/install-info install-info.bak
나는 그것이 그가 새로운 것을 사용하도록 강요했다고 생각합니다.
그 이후로 업그레이드가 매우 원활하게 진행되었습니다.