나는 sudo apt-get remove python
명령을 사용 하고 실수로 필요한 많은 패키지를 제거했습니다. 커맨드 라인을 통해 로그인하고 ubuntu-desktop을 다시 설치했지만 누락 된 다른 패키지가 있으며 제거 된 패키지를 쉽게 다시 설치할 수있는 방법을 찾고 있습니다. 소프트웨어 센터에 로그가 있기 때문에 소프트웨어 센터에서 변경 사항을 롤백하거나 제거 된 패키지 목록을 추출하는 가장 쉬운 방법을 묻고 싶었습니다.
참고 : sudo apt-get install .... .... ... ...
해당 목록에서 제거 된 프로그램 중 약 20 개를 입력했지만 Enter 키를 누르면 일부 패키지 이름을 찾을 수 없으므로 설치하지 않았습니다.
프로그램은 같은 날짜에 제거되었습니다.
답변
우선, 제거 python
하면 더 이상 많은 기본 명령이 작동하지 않을 수 있습니다. 따라서 다음과 같은 것이 효과가 있는지는 알 수 없습니다.
두 번째로, 나는 package names couldn't be found
당신이 가지고 있는 오류가 명령 줄의 철자가 틀린 이름이나 로컬에 설치되어 있고 저장소에서 사용할 수없는 패키지에서 파생 되었다고 가정 합니다.
그런 다음 dpkg
사용 가능한 마지막 로그 와 비교하여 제거 된 패키지 로그를 얻으려면 (이전 로그를 고려할 필요는 없다고 생각합니다).
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list
그런 다음 list
현재 디렉토리에서 작성된 파일을 편집하고 라인의 타임 스탬프를 기준으로 재설치하려는 패키지에 상대적으로 라인 만 남겨 두십시오. 수정 된 파일을에 저장한다고 가정 해보십시오 list-mod
.
해당 패키지를 다시 설치하려면 다음 명령을 사용하십시오.
sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)
--simulate
명령이 무엇을하는지보기 위해 옵션을 삽입했습니다 . 모두 정상이면 해당 옵션을 제거한 상태에서 명령을 다시 수행하십시오.
명령에서 일부 패키지를 찾을 수 없다고하면 간단히 패키지를 제거한 list-mod
후 다시 시도하십시오.
답변
그래서 비슷한 실수를합니다.
sudo apt-get purge python3.6*
대신 sudo apt-get purge python3.6.*
.
다음 단계를 통해 매우 빠르게 해결할 수있었습니다.
- 로그를 열었습니다
vim /var/log/history.log
. - vim command 사용하여 잘못된 명령을 검색했습니다
/python3.6\*
. Purge: unity-control-center-signon:amd64 (0.1.7~+14.04.20140211.2-0ubuntu4), ...
제거 된 패키지 목록이 긴 행이 있었으며 (제거시 시작Remove:
),Purge:
작업 할 부분 없이 다른 파일에 복사 했습니다.- 이 파일에서 vim 명령을 실행했습니다.
%s/:[^,]*,//g
, 버전 부분을 제거하고 패키지 목록을 남겼습니다unity-control-center-signon lxc ...
. - 마지막으로 이전 단계에서 줄을 복사하고 실행
sudo apt-get install unity-control-center-signon lxc ...
했습니다.