로 패키지 목록을 살펴보던 중 실수로 두 번 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
상태로 재설정하고 싶지만 지금 은 제안된 목록을 수동으로 거치지 않고도 only로 표시된 (아직 설치되지 않음) 것으로 돌아가는 상태로 돌아가고 싶습니다 . 메뉴 에서 .***
**
__
[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