'apt update' 패키지가 수동 설치로 표시되지 않았나요?

'apt update' 패키지가 수동 설치로 표시되지 않았나요?

단일 데비안 패키지를 "수동 설치"로 표시하지 않고 어떻게 업그레이드할 수 있나요? apt install upgradeable-lib물론입니다. 하지만 그렇게 해야 합니다 apt-mark auto(그렇지 않으면 패키지가 더 이상 자동으로 제거될 수 없습니다).

답변1

통과소스 탐색, 귀하가 찾고 있는 기능을 찾았지만 해당 기능은 다음에서만 사용할 수 있습니다.몇 달 전에 한 약속, 그래서 불스아이(향후 Debian 11)에서만 사용할 수 있습니다:

새로 설치된 모든 패키지를 자동으로 설치된 것으로 표시 지원

새로 설치된 모든 패키지를 자동 설치로 표시하려면 "apt install"에 "--mark-auto" 옵션을 추가하세요.

동등한 구성 옵션(Debian 10에서는 유효하지 않음)은 입니다 APT::Get::Mark-Auto.

답변2

복사 붙여넣기가 지겨워서 결국 글을 쓰게 되었어요적절한지정된 패키지를 업그레이드하는 간단한 작업을 완료합니다(또는 업그레이드 가능한 목록에서 선택하여 dialog). apt-mark showauto pkg...나중에 복원할 수 있는 자동 설치 상태를 인쇄합니다 apt-install.

답변3

나는 얼마 전에 dpkg -l이전 시스템에서 실행하여 제공되는 패키지 목록을 사용하여 이전 설치에서 새 설치로 모든 것을 설치하려고 시도하면서 이 문제에 직면했습니다.

이전에 가지고 있던 모든 것을 원하지만 설치된 시스템의 수명 동안 설치한 모든 것을 기억할 수 없는 경우에 유용합니다.

다음 스크립트는 install_new이 함수를 사용하여 모든 것을 설치하려고 시도하여 이를 수행합니다. 비결은 먼저 실행하는 것입니다 dpkg -s package-name. 패키지를 찾을 수 없으면 패키지가 아직 설치되지 않았음을 알 수 있도록 오류가 반환됩니다.

아래 스크립트에는 명령 echo에 접두사가 있으므로 apt접두사를 제거하기 전 테스트 실행이 됩니다. 이를 통해 입력 목록을 편집하고 새 시스템에 보관하고 싶지 않은 항목을 제거하거나 나중에 설치를 위해 실행할 스크립트 출력을 파일로 리디렉션할 수 있도록 먼저 수행할 작업을 확인할 수 있습니다. 이는 일부 "재설치"가 실패할 수 있으므로 특히 유용합니다. 따라서 문제를 해결하고 파일을 편집하여 중단한 부분부터 다시 시작해야 할 수도 있습니다.

이 스크립트를 사용하여 설치 스크립트를 생성하고 echo스크립트의 다른 명령을 주석 처리해야 합니다.

#!/bin/bash

function install_new () {
  if [[ -z "$1" ]]
  then
    echo "install_new called with empty argument"
    rc=1
  else
    dpkg -s "$1" &> /dev/null
    rc=$?
    if (( rc ))
    then
      echo sudo apt-get install "$1"
      rc=$?
    else
      echo -e "\tSkipping [$1] - already installed"
      rc=1
    fi
  fi
  return ${rc}
}

while read package action
do
  echo "Package [${package}] Action [${action}]"
  action="${action:-install}"  ## If action is not present, default to install
  
  case "${action}" in
    # 
    "install")
      install_new "${package}"
    ;;
    #
    *)
      echo -e "\tDon't know how to ${action} ${package}"  
    ;;
  esac

done < "${1}"

답변4

apt그러나 대화형 모드 에서는 aptitude이 작업을 수행할 수 없습니다 .

왜 이런 일을 하게 되었는지 궁금합니다. 자동으로 설치된 라이브러리는 설치를 원한다고 표시한 라이브러리를 실행해야 하기 때문에 설치됩니다. apt다른 버전의 라이브러리 설치를 요청함으로써 귀하는 해당 버전을 설치하고 싶다는 뜻을 표현합니다. 더 이상 자동이 아닙니다. 사용자가 요청한 것이므로 apt종속 패키지가 사라지면 더 이상 제거 가능한 것으로 간주되지 않습니다.

관련 정보