apt로 apt를 제거 할 수 있습니까?


45

apt-get remove <package>프로그램을 제거하는 데 사용할 수 있다는 것을 알고 있습니다 .

그러나 apt프로그램 자체입니다. apt-get remove apt그것을 제거하는 데 사용할 수 있습니까, 아니면 도중에 혼란 스러울까요?


2
이것이 실제적이거나 단순한 가상의 질문입니까? 경우 1 : 시도해보십시오. 그렇지 않으면 : 구성 요소를 제거한 후 시작하지 않으면 스스로 제거 할 수 있어야한다고 생각합니다. 이미 열려있는 파일은 문제없이 제거 할 수 있습니다.
바이트 사령관

@ByteCommander 둘 다지만 지금은 실제로 시도 할 수 없습니다.
Tim

13
당신 은 할 수 있지만 아마 해서는 안됩니다 . 리눅스 는 사용자가 발로 자신을 쏘고 싶어 하는지 거의
묻지

1
완벽을 기하기 위해 Fedoras의 dnf는이를 허용하지 않습니다. # dnf remove dnf Dependencies resolved. Error: The operation would result in removing the following protected packages: dnf.
Davidmh

참으로 흥미로운 질문입니다! 논리적 후속 조치는 다음과 같습니다. 복구 할 수 있습니까, 아니면 완전히 다시 설치해야합니까?
KlaymenDK

답변:


78

APT에서는 옵션을 사용하여 명령을 시뮬레이션 할 수 있습니다 -s. 명령을 실행하여 필요 apt-get -s remove apt하지 않은 sudo경우 직접 시도해보십시오 .

결과는 다음과 같습니다.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

답은 다음과 같아야합니다. 가능합니다.


8
apt의 시뮬레이션 모드가 이와 같은 것에 대한 전체 낙진을 다루고 있는지 확실하지 않습니다. 분명히 이것은 코드가 해결할 수도 있고 그렇지 않을 수도있는 가장 중요한 경우입니다.
Sparhawk

12
이것은 필요하지 않습니다 sudo( -s모드는 변경되지 않습니다) . 예방 없이 실행하는 것이 좋습니다 sudo.
가짜 이름

3
Apt는 apt를 제거하는 방법을 결정할 수 있습니다. 그러나 실제로 할 수 있습니까? 나중에 의존하는 파일을 삭제하여 설치가 일관성이없는 상태로 남아 있다고 생각하기 쉽습니다.
user253751

1
@immibis 나는 dpkg를 제거하는 것에 대해 더 걱정하고 있습니다. Apt 자체는 dpkg에게 무엇을해야하는지 알려주고, dpkg는 실제로 (un) 설치를 수행하는 것입니다.
Random832

1
따라서 apt가 dpkg에게 무엇을해야하는지 알려 주면 dpkg를 제거하면 어떻게됩니까? lol
SuperSluether

30

당신은 할 수 ...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

매우 파괴적인 일을하려한다는 경고를받을 것입니다. 나는 말해야합니다 ... 패키지 목록은 6000kb 미만의 공간 절약을 위해 끔찍한 것 같습니다 : D

완료되지만 "apt-get"을 사용하는 방법은 없습니다. Ubuntu Software Center는 더 이상 작동하지 않으며 "dpkg"를 사용하여 패키지 관리자를 다시 설치해야합니다 (모든 종속성도 수동으로 설치해야 함).


12
"dpkg"를 사용하여 패키지 관리자를 다시 설치해야하고 수동으로 모든 종속성을 설치해야합니다. 즉,sudo apt-get remember-what-2002-was-like
user1717828

당신이 라이브 CD로 부팅 할 수 없습니다, 다음 chrootapt-get아치 않습니다, 많은처럼?
Sparhawk

1
@Sparhawk 무엇을 목표로 삼고 있는지 잘 모르겠습니다. 당신이 chroot 후에, 당신은 정상적인 시스템의 루트에 있고, 거기에서 apt-get을 찾고, 제거했습니다. 나는 apt-get (또는 아마도 dpkg)이 대체 루트 디렉토리를 지정할 수 있다고 생각하지만 어떻게 그렇게 할 것인지 빨리 찾을 수는 없습니다.
CVn

제거하는 패키지는 물론 적절한 자체를 제외하고는 특히 "무서운"IMO가 아닙니다.
Random832

@ MichaelKjörling apt-get새로운 "루트"에 설치 하는 수동 경로를 실행할 수 있다고 생각 했지만 모든 구성 / 캐시 파일도 필요하다는 것을 잊었습니다. 그래도 가능한 제안은 분명합니다 (해당 옵션이있는 경우).
Sparhawk

12

한 번 CoreUbuntu를 실행했을 때 소스에서 버그가있는 패키지를 설치 apt했습니다 apt. 다음에 실행할 때 apt autoremove실제로 제거 할 소프트웨어 목록을 보지 않고 apt목록에있었습니다.

다음에 타이프 apt install <package-name>하고 입력했을 때 놀라움을 상상해보십시오 The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt.

다행히, 어떤 이유로, autoremove어떤 제거하지 않았다 apt'모든 I이었다해야했다, 그래서의 종속성을 wget apts'를 .deb사용하여 아카이브 및 재설치 dpkg -i.


다른 답변에 나타낸 바와 같이 제거하는 경우 apt apt 종속성이 해결하려고하기 때문에, 당신은 더 많은 문제가 될 수 있습니다.

나는 흥미롭지 만 실제로 (데비안, 아마도 페도라 / openSUSE의 경우?) 많은 현대의 배포판이 그들의 선택된 패키지 관리자가 제공 한 인프라에 크게 정의되고 구축되는 경우이다.


5
apt종속성을 제거하지 않은 이유 는 설치 한 버그가있는 패키지가 필요에 따라 나열했기 때문입니다. 해당 패키지가 교체 용으로 사용 된 경우 의미가 있습니다.
Dmitry Grigoryev

5

apt는 패키지를 제거, 설치 또는 업그레이드하는 방법을 모르기 때문에 기술적으로 apt는 apt를 제거 할 수 없습니다. 패키지 설치, 제거, 업그레이드 및 구성 작업은 dpkg로 남아 있습니다. apt에게 "apt"라는 패키지를 제거하라고 지시 할 수는 있지만 apt 패키지의 역방향 종속성을 확인하고 해당 패키지를 기록하고 dpkg를 제거하도록 주문하는 것입니다. 다른 답변 에서 볼 수있는 것은 무엇입니까 ?

심지어 쉽다없이 인 종속성 및 필요한 업그레이드를 추적하는 것이 더 고통 스러울 것입니다 단지, 설치, 제거 또는 패키지를 업그레이드 할 dpkg를 사용할 수있는 존재 이유 APT의.


예, apt는 정말 단순한 프론트 엔드이며 dpkg, 제거하면 dpkg더 이상 우분투입니까?
고양이

@ cat 패키지를 지우거나 /var/lib/dpkg/status파일을 제거하지 않는 한 여전히 그렇습니다 . 원하는 경우 dpkg를 복구 할 수 있습니다.
Braiam

1

물론 당신은 할 수. Apt와 dpkg는 그 자체가 패키지이며, 스스로를 통해 업데이트 될 수 있기 때문에 제거 할 수있는 조항이 있습니다. 그렇지 않은 경우 /var/lib/dpkg/info/dpkg.prerm/var/lib/dpkg/info/dpkg.postrm존재 이유가없는 것입니다 :)

dpkg가없는 상태에서 실수로 파일을 제거한 경우에도 binutils, tar, gzip / bzip2를 제거하지 않는 한 dpkg 용 .deb 아카이브를 수동으로 압축 해제 할 수 있습니다.

--purgeapt 툴체인과 관련된 모든 패키지에서 문제가 발생할 수 있습니다. 의 특정 파일이 무엇인지 알기 어렵습니다 /var/lib/dpkg. 경우 /var/lib/dpkg/status삭제했고에는 현재 백업이 없었다, 다음 네, 패키지 관리자는 해당 시스템에서 복구 할 수 없게 될 것이다.


-1

나는 우분투 기반 시스템 에서 apt바이너리를 본 /usr/local/bin적이 없다고 맹세 하지만 현재 우분투 MATE 15.04 시스템에는 없습니다 ( /usr/bin다른 바이너리와 대부분). 포함되어 있으면 패키지 관리자가 파일을 무시해야 하므로 /usr/local/bin설치 제거 할 수 없습니다 . 나는 퍼팅 인정합니다 (그리고 아래 것은뿐만 아니라) 좋은 생각 일 것입니다.apt/usr/local/binaptdpkg/usr/local/bin

더 흥미로운 질문은 제거 할 경우 어떻게됩니까 dpkg? 확실히, dpkg님이 패키지로 표시 apt하지만 지금은 제거하지 않을 것입니다 (현재 가상 머신을 설정하지 않았습니다). 이론적으로는 dpkg자체적으로 제거 할 수도 있습니다. 다시 설치하는 유일한 방법은 수동으로 설치하는 것이기 때문에 기존 구성 파일을 선택하기를 희망합니다 (따라서 시스템에 수동으로 다시 말할 필요가 없습니다) 어떤 패키지가 설치되어 있는지 확인한 다음 패키지 dpkg가 다시 설치 되었음을 알려줍니다 .


(농담 :) 데비안 사용자는 # rm -rf /is # apt-get purge ".*"입니다.


공식 배포 패키지에서 나온 것이 / usr / local / bin에 있으면 해당 패키지에 버그를 신고하십시오.
rackandboneman

문제는 패키지에서 나온 것이 아니라는 것입니다. "apt-get remove apt"및 "apt-get remove dpkg"문제를 방지하기 위해 패키지 관리자와 별도로 설치되었습니다. 나는 그것이 실제로 Linux Mint라고 생각했다.
Micheal Johnson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.