패키지를 설치하기 전에 dselect 선택 재설정

패키지를 설치하기 전에 dselect 선택 재설정

패키지 목록을 보다 dselectReturn실수로 두 번 눌러 [S]elect옵션을 확인하고 종료하게 되었습니다.

해당 옵션으로 이동하면 [I]nstall이제 내가 원하지 않는 일부 새 패키지를 설치하라는 제안이 표시됩니다(원래 찾고 있던 패키지와는 아무 관련이 없습니다).

설치 자체를 계속하지 않았으므로 목록을 하나씩 살펴보고 -각 패키지를 누르지 않고 새 패키지를 선택하기 전의 선택 항목을 재설정할 수 있는 방법이 있습니까? ( dselect이 작업이 다른 관련 명령을 통해 수행되는지 여부는 중요하지 않습니다.)

편집: (예제 추가)

dselect설치된 다른 컴퓨터에서 시도해 보았습니다 . 패키지가 설치되지 않았다고 가정합니다 gnugo(이것은 단지 예일 뿐입니다).

  • 실행 delect하고 [S]elect목록 가져오기를 선택합니다.
  • gnugo이 목록에서 검색하십시오( /익숙하지 않은 경우 이 목록을 사용하십시오 dselect).
  • 그것을 선택합니다 +.
  • Return제안 확인을 누르고 Return다시 확인하여 주 메뉴로 돌아갑니다(제 실수입니다).
  • 가다 [I]nstall. 이제 다음과 같이 말할 것입니다:

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following NEW packages will be installed
      gnugo:i386 libgpm2:i386 libncurses5:i386 libreadline6:i386 libtinfo5:i386
    0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1,926 kB of archives.
    After this operation, 9,634 kB of additional disk space will be used.
    Do you want to continue [Y/n]? 
    
  • 여기( n)에서 계속하지 않으려면 선택하세요.

  • 사직하다 dselect.
  • dpkg --get-selections | grep gnugo아무것도 생산되지 않습니다.
  • 다시 시작 dselect하고 다시 직접 입력하면 [I]nstall설치를 위해 소프트웨어 패키지가 계속 선택됩니다.

물론 목록으로 돌아가서 [S]elect검색하고 gnugo눌러서 _선택을 취소할 수 있지만 더 복잡한 경우에는 새 패키지 목록을 하나씩 살펴보아야 할 수도 있습니다.

[I]nstallin은 dselect분명히 의 프런트 엔드이지만 apt-get install선택 항목이 어디서 나오는지 잘 모르겠습니다. 그렇지 않은 것 같습니다 dpkg --get-selection. 지금은 dselectMade를 사용하여 만든 모든 ***방식 으로 다시 재설정하고 싶지만 이제 메뉴 에서 제안 목록을 수동으로 탐색하지 않고도 **전용(아직 설치되지 않음)으로 표시된 콘텐츠가 반환됩니다 .__[I]nstall

편집 2:

/var/lib/dpkg/status이는 분명히 다음 항목을 포함하는 의 내용과 관련이 있습니다 .

Package: gnugo
Status: install ok not-installed
Priority: optional
Section: games

수동으로 으로 변경하면 Status: deinstall ok not-installed선택 항목에서 사라집니다 dselect.

내가 원하는 것은 말한 것을 (패키지를 그대로 두는 것 ) 로 바꾸는 Status: install ok not-installed일반적인 방법 입니다 .Status: deinstall ok not-installedStatus: install ok installed

답변1

--set-selections* 매개변수를 사용하세요 dpkg.

echo "<package-name> purge" | dpkg --set-selections

apt-get dselect-upgrade그런 다음 를 사용하여 패키지 선택 사항을 적용 할 수 있습니다 .


설치를 위해 선택했지만 아직 설치되지 않은 패키지를 찾아야 하는 경우(선택을 취소할 수 있도록) 다음 명령을 사용하십시오.

dpkg --get-selections | awk '{ if ($2=="install") print $1}' | grep -vF "$(dpkg -l | awk '/^ii/ {print $2}')"

조금 더 화려하게 파이프를 다시 연결하여 --set-selections아직 설치되지 않은 항목을 자동으로 선택 취소할 수 있습니다.

dpkg --get-selections | awk '{ if ($2=="install") print $1,"deinstall"}' | grep -vF "$(dpkg -l | awk '/^ii/ {print $2}')" | dpkg --set-selections

*또한 이를 사용하여 dpkg --get-selections모든 명시적 선택 항목을 나열할 수도 있습니다. 이것은 또한 당신에게 필요한 형식을 보여줍니다 --set-selections.

답변2

dpkg --get-selections설치된 것으로 표시된 항목과 아직 설치되지 않은 dpkg -l '*'항목을 나열하는 대신 in.

따라서 다음 줄은 이러한 선택을 재설정합니다.

dpkg -l '*' | grep '^in ' | awk '{ print $2 " deinstall" }' | dpkg --set-selections

답변3

사용자격~의검색 기능목록을 받으세요.

aptitude -F '%p' search '~ainstall !~i'

목록을 전달하여 dpkg --set-selections삭제 표시를 하세요.

aptitude -F '%p deinstall' search '~ainstall !~i' | dpkg --set-selections

내레이터: 21세기에 오신 것을 환영합니다. Dselect 대신 Aptitude를 사용하는 것이 좋습니다.

관련 정보