우분투 64 비트에서 모든 i386 패키지를 제거하는 방법?


답변:


15

그들이 당신의 방식으로 있지 않다면, 나는 그들이있는 곳에 남겨 둘 것입니다.
삭제를 주장하는 경우 dpkg -l | grep i386i386 패키지 목록을 작성하는 데 사용 하십시오. 와 같은 것을 신중하게 확인한 후에 삭제할 수 있습니다 sudo apt-get purge <package-name>.


2
그 적성이되는 경우를 제외하고 multiarch에 깨진 것을 너무 잘 작동하지 않도록, : P를
다니지

apt-get purge <package-name>그래도 여전히 작동해야합니다.
Eliah Kagan 2016

2
"주의 깊게 확인한 후"-모호합니다. 좀 더 명확하게 부탁드립니다.
kevinarpe

1
나는 USB에 I386 시스템이 가끔 그렇게 실행 한 후, 역을 할 지금 난 그냥 원, AMD64 시스템에서 사용할 dpkg -l | grep amd64내가 내 목록에서 I386 PKG있어 amd64-microcode 3.20160316.3 i386, 내가 생각하는 그 ':'은 grep 패턴 중요하다 ! ( dpkg -l | grep ":amd64")
요나

24

자동화 된 상위 솔루션은 위험하며 항상 작동하지는 않습니다 (1).

sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

또는

sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

(항상 하나의 도구 만 사용하십시오. 종속성 문제가있는 경우 적성이 더 좋으므로 선호합니다.)

또한 좋은 생각

dpkg --remove-architecture i386

그리고 아마도

dpkg --print-foreign-architectures

(1) 이전 명령은 이름에 i386 만있는 패키지를 나열하지만 (64 비트 아키텍처 용이지만) 정규 표현식이 작동하지 않으며 dpkg는 이미 제거되었지만 여전히 구성 파일이 남아있는 패키지를 표시합니다 ( dpkg -l 상태로 "ii"대신 "rc"를 표시합니다.


awk어쨌든 사용 하고 있기 때문에 grep호출을 제거 할 수도 있습니다 . 또한 $()백틱 대신에 선호됩니다. 방금 제공 한 명령에 sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
따라이

23

나는 다음과 같이 모든 32 비트 패키지를 공포했다.

sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`

1
이러한 종류의 명령을 만드는 방법, apt-get 및 grep을 알고 있지만 awk '{print $ 1}'은 알고 싶습니다.
Sukupa91

굉장하고, 나는 지금 i386 아키텍처를 제거 할 수 있었지만 dpkg -l | grep i386, 패키지를 점검 할 때 여전히 아이디어가 있고, 이전 의견에 +1하고 쉘 스크립트 기술과 관련이 있다고 생각합니다.
Ismail Marmoush

주석이 어색한 튜토리얼을위한 장소가 아니기 때문에 아마도 응답이 없습니다. 해당 awk 비트는 파이프되는 각 행의 첫 번째 필드 만 인쇄합니다. Awk의 기본 필드 구분 기호는 공백 ""입니다.
rthbound

다음으로 마무리하십시오sudo dpkg --remove-architecture i386
Serge Stroobandt

9

누군가 궁금해하는 경우에는 훨씬 더 깔끔하고 우아한 방법이 있습니다. 마지막 이전 답변은 동일한 작업을 수행하려고하지만 아키텍처는 특별한 경우를 제외하고 실제로 패키지 이름의 일부가 아니기 때문에 검색이 실패합니다.

루트로 (또는 sudo로) 다음을 실행하십시오.

aptitude remove ~i~ri386

apt-get보다 적성을 아직 사용하지 않았다면 그렇게하십시오. 정말 훌륭합니다. 적성의 검색어 목록은 여기 에서 찾을 수 있습니다 .


6

위험이 더 낮은 다른 방법은 다음과 같습니다.

apt-get remove "^.*:i386$"

이것은 ":i386"모든 i386아키텍처 데비안 패키지에 대한 표준 명명 규칙 인로 끝나는 패키지 만 일치 합니다.


왜 퍼지 제거?
Lotus

1
@Lotus : 나는 그 차이를 모른다. 설명해 주시겠습니까? 이 답변을 업데이트하여 개선 할 수 있습니다.
kevinarpe

제거는 구성 파일과 모든 재생 디렉토리를 가져옵니다. iirc
Lotus

2
@Lotus 나는 퍼지를 사용했고 14.04에서 일했습니다. 이것은 따옴표와 캐럿을 제거한 후에 나에게 효과적이었습니다. sudo apt-get purge .*:i386
Antonios Hadjigeorgalis

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.