제거 된 많은 패키지를 한 번에 다시 설치하는 방법은 무엇입니까?


8

나는 sudo apt-get remove python명령을 사용 하고 실수로 필요한 많은 패키지를 제거했습니다. 커맨드 라인을 통해 로그인하고 ubuntu-desktop을 다시 설치했지만 누락 된 다른 패키지가 있으며 제거 된 패키지를 쉽게 다시 설치할 수있는 방법을 찾고 있습니다. 소프트웨어 센터에 로그가 있기 때문에 소프트웨어 센터에서 변경 사항을 롤백하거나 제거 된 패키지 목록을 추출하는 가장 쉬운 방법을 묻고 싶었습니다.

참고 : sudo apt-get install .... .... ... ...해당 목록에서 제거 된 프로그램 중 약 20 개를 입력했지만 Enter 키를 누르면 일부 패키지 이름을 찾을 수 없으므로 설치하지 않았습니다.

프로그램은 같은 날짜에 제거되었습니다.


1
보고/var/log/apt/history.log
Lekensteyn

답변:


16

우선, 제거 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후 다시 시도하십시오.


감사합니다. 필요한 패키지를 다시 설치할 수있었습니다! 한 가지 질문은 소프트웨어 센터 로그에서 200 개가 넘는 패키지가 제거되었지만 목록 파일에 약 150 개가 있다는 것입니다. 이는 dpkg.log에 자동 설치 / 종속 패키지가 포함되어 있지 않습니까? 이 솔루션에 다시 한번 감사드립니다 :)
Logan

1
그 로그 파일마다 설치, 업그레이드, 제거 또는 패키지를 제거 포함하고에서 모든 응용 프로그램 dpkgapt-get, aptitude시냅틱, 소프트웨어 센터, gdebi당신은 나이가 한 번 봐 줄 수있는 등 dpkg.log파일을 참조하십시오 ls -lrt /var/log/dpkg.log*.
enzotib 2016 년

1
@enzotib 나는 오래된 리눅스 헤더를 제거하기위한 스크립트를 실행했으며 정규 표현식이 삭제하고 싶지 않은 많은 패키지와 일치한다고 생각합니다 (매우 중요합니다!). 당신의 대답은 특정 재난으로부터 저를 구했습니다.
shivisuper

1
@enzotib 방금 잘못된 스크립트를 실행 한 후 OS를 다시 설치하지 못하도록 막았습니다. 감사!
brndn2k

0 업그레이드, 0 설치, 0 제거 및 50 업그레이드 안 됨
James Casia

2

그래서 비슷한 실수를합니다. sudo apt-get purge python3.6*대신 sudo apt-get purge python3.6.*.

다음 단계를 통해 매우 빠르게 해결할 수있었습니다.

  1. 로그를 열었습니다 vim /var/log/history.log.
  2. vim command 사용하여 잘못된 명령을 검색했습니다 /python3.6\*.
  3. Purge: unity-control-center-signon:amd64 (0.1.7~+14.04.20140211.2-0ubuntu4), ...제거 된 패키지 목록이 긴 행이 있었으며 (제거시 시작 Remove:), Purge:작업 할 부분 없이 다른 파일에 복사 했습니다.
  4. 이 파일에서 vim 명령을 실행했습니다. %s/:[^,]*,//g, 버전 부분을 제거하고 패키지 목록을 남겼습니다 unity-control-center-signon lxc ....
  5. 마지막으로 이전 단계에서 줄을 복사하고 실행 sudo apt-get install unity-control-center-signon lxc ...했습니다.

나를 위해/var/log/apt/history.log
테일러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.