패키지 목록을 보다 dselect
가 Return실수로 두 번 눌러 [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]nstall
in은 dselect
분명히 의 프런트 엔드이지만 apt-get install
선택 항목이 어디서 나오는지 잘 모르겠습니다. 그렇지 않은 것 같습니다 dpkg --get-selection
. 지금은 dselect
Made를 사용하여 만든 모든 ***
방식 으로 다시 재설정하고 싶지만 이제 메뉴 에서 제안 목록을 수동으로 탐색하지 않고도 **
전용(아직 설치되지 않음)으로 표시된 콘텐츠가 반환됩니다 .__
[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-installed
Status: 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