최근의 모든 apt-get 설치 및 위치를 기록하는 Bash 스크립트

최근의 모든 apt-get 설치 및 위치를 기록하는 Bash 스크립트

이와 같은 것이 이미 존재한다면 죄송합니다. 하지만 제가 조사한 결과 그런 증거는 발견되지 않았습니다.

내가 원하는 것: 내가 작성할 수 있는 "모니터" 유형 스크립트, apt-get을 설치하기 전에 하나 이상의 패키지를 "활성화"한 다음 완료되면 "비활성화"하는 스크립트입니다. 설치된 모든 항목을 '로그'하고, 설치가 만족스럽지 않으면 명령 하나로 모든 설치 흔적을 모두 제거합니다.

나는 프로그래머이기 때문에 이것을 하고 싶은데, 새로운 언어에 대한 프로그래밍 환경을 설정하는 것은 버그가 많을 수 있습니다(또는 내 자신의 사용자 오류로 가득 차 있을 수 있습니다). 예를 들어 go lang은 나에게 문제를 안겨주었지만 Ruby/Rails는 다소 고통스럽지 않았습니다.

이제 apt-get purge 및 autoremove가 패키지 시스템을 정리하는 데 꽤 효과적이라는 것이 내 생각이지만, 많은 패키지를 연속적으로 설치할 때 내 아이디어가 여전히 유용하다고 생각하고 싶습니다.

내 질문: 이 작업을 어떻게 가장 효과적으로 수행해야 합니까? 속도와 논리성이 우선입니다.

구현하기 위해 찾은 모든 (심지어 나쁜 것처럼 보이는) 방법은 다음과 같습니다.

--inotifywait: 시스템 전체에서 사용하는 것은 불가능하며 '인기 있는' 디렉토리에만 적용할 수 있지만 파일이 빠져나갈 수 있습니다.

--diff: 위와 동일합니다. 거의 대부분입니다.

--git: 롤백할 수 있는 "그림"을 저장하려면 git을 사용합니다. 위와 동일한 문제이지만 그 정도는 적습니다(제 생각에는 그렇습니다. 그렇지 않은 경우 정정해 주세요).

--설치된 패키지 이름을 기록하고(어쨌든) 설치된 패키지 수를 간단히 계산한 다음 /var/cache/apt로 이동하여 apt-get 제거 등을 사용합니다. 일반적으로 여기서 균열을 통과할 수 있는 것이 있습니까?

보시다시피 아이디어가 더 합리적인 솔루션으로 발전할 수 있도록 연구와 함께 아이디어를 가지고 있는 순서대로 나열했습니다.

그래서 본질적으로 저는 조언을 얻기 위해 여기에 왔습니다. 왜냐하면 저는 bash 스크립트 작성에 완전히 익숙하기 때문입니다. 하지만 이전에는 그런 것이 필요했던 적이 없었기 때문에 더 현명한 조언을 구합니다. 솔직히 말해서 이것은 재미와 학습을 위한 것이기도 합니다.

감사해요!

답변1

비슷한 목표를 갖고 있는 분들이라면,

결국 /var/log/apt/history.log를 설치 "세션" 전후에 하나씩 두 개의 텍스트 파일로 저장했습니다. 또한 가능한 확장을 허용하기 위해 diff의 출력을 새로 설치된 패키지의 패키지 이름만 포함된 파일에 저장했습니다(이렇게 하면 (Y/n으로 각 패키지를 순환하는 대화형 명령줄 옵션이 허용될 수 있음) ) 대량 제거 대신 삭제 옵션)

다른 사람들을 올바른 경로로 안내하려면: sed/grep, diff, cut, tail, xargs 및 > 및 >>를 사용하여 출력을 파일로 보냅니다. 그리고 기본적인 bash 스크립팅.

관련 정보