지우기와 삭제가 어떻게 다른지 이제 막 이해하기 시작했지만 이해하지 못하는 한 가지는 다음과 같습니다.
제거는 사용자 프로필을 찾을 위치를 어떻게 알 수 있으며, 제거할 때 실제로 삭제된 프로필 수는 몇 개입니까?
패키지를 제거할 때 패키지가 전혀 존재하지 않았던 것처럼 보이도록 해당 패키지를 설치하고 구성하여 패키지와 남겨질 수 있는 모든 마지막 디렉터리 또는 파일을 실제로 제거하려면 어떻게 해야 합니까?
이 삭제 문제를 설명하는 데 도움이 된 시나리오는 다음과 같습니다.
- 필요한 여러 종속성을 설치하는 패키지를 설치했습니다.
- 패키지를 설치하고 필요한 여러 종속성을 설치하려고 시도하지만 일부 다른 패키지에는 해당 종속성이 필요하기 때문에 이미 해당 종속성이 설치되어 있으므로 설치되지 않습니다.
- 패키지를 삭제하면 다른 프로그램에서 필요한지 여부에 관계없이 필요한 모든 종속성이 제거됩니다.
- 패키지를 제거했는데 다른 프로그램에 필요한 일부 종속성을 발견하여 해당 패키지는 유지하고 필요한 것만 제거했습니다.
내 논리가 모든 시나리오를 포괄한다고 생각합니다. 본질적인 무익함에도 불구하고 이러한 시나리오를 구현할 수 있는 방법이 있다고 확신합니다. 논리를 작성하면 됩니다. 어쨌든 질문은 삭제보다는 제거에 관한 것이므로 제거를 고수하겠습니다. 하지만 관련성이 있거나 필요하다고 생각하시면 삭제에 대한 제 이해를 바로잡아 주시기 바랍니다.
정리 문제를 보여주는 실제 예는 다음과 같습니다.
예시 1:
사용자의 홈 디렉터리에 폴더를 생성하여 구성을 저장하는 ightvncserver 또는 openssh-server를 설치했습니다. 이 두 패키지는 purge에 "이봐, 시스템에서 내 패키지를 제거할 때 ~/.vnc 또는 ~/.ssh를 보고 해당 폴더를 삭제하여 아무것도 남지 않게 할 수 있습니다."라고 말할 수 있습니다.
또한 이러한 패키지는 제거할 수 있는 /var 또는 다른 디렉토리에 다른 항목을 남겨두나요? man-db, bash 별칭 등은 모르겠습니다. 정말로, 모르겠어요. 제가 이 일을 처음 접한다고 말씀해 주시죠.
예 2:
램프 스택.
Apache를 설치하면 곳곳에 물건이 흩어지는 것 같습니다. apache2는 /etc에 자체 폴더가 없고 사이트 자체에 /var의 공간을 사용하지 않습니까? apache2를 제거하면 /etc 및 /var을 확인하고 모든 쓰레기를 제거하는 방법을 알 수 있습니까? 이러한 디렉터리를 삭제할 위치를 알고 있다면 어떻게 알 수 있습니까? 패키지 파일 자체에 커널에 알리거나 적어도 "이봐, 나를 지울 때 다음 위치를 보고 이 항목을 모두 삭제하세요. 나 외에는 아무도 사용하지 않기 때문입니다. 아, 그리고 당신이 있는 동안 그렇게 하면 우리의 모든 프로그램이 이것을 사용하여 우리가 완전히 잊어야 할 시스템 부분(systemctl? bash? 기타?)을 찾을 수 있다고 알려주세요.
다음에서 패키지 제거 흔적이 보이는 것 같습니다.
- /등
- /var
- systemctl의 서비스 상태를 조회할 때
- 배쉬 별칭
- 패키지 설치 시 내가 나열하지 않은 항목은 정확히 어디에 저장되나요?
분명히 나는 존재하거나 이용 가능한 정보를 요구하고 있습니다. 그러나 나는 이러한 문제를 간결하게 다루기를 정말로 원했습니다. 나는 이것이 많은 사람들이 패키지 설치 및 제거가 어떻게 작동하는지 이해하는 데 도움이 될 것이라고 생각합니다. 어쩌면 실제로 연결되지 않은 것에 대해 묻는 것일 수도 있지만 나에게는 연결되어 있는 것처럼 보입니다. 따라서 이러한 것들 사이의 연결 또는 연결 부족을 찾아내거나 수정하는 것도 분명히 문제를 명확하게 하는 데 도움이 될 수 있습니다.
답변1
거기에는 (명시적이든 암시적이든) 많은 문제가 있으며 주요 문제를 다루겠습니다.
말씀하신 것처럼 dpkg
"제거"와 "제거"(적어도 기반 시스템에서는)의 차이점은 패키지를 제거하면 구성이 유지되고 제거하면 구성이 제거된다는 것입니다. 여기에는 중요한 측면이 있습니다. 패키지를 지우면 시스템 구성만 제거되며 홈 디렉터리에 저장된 사용자 구성은 건드리지 않습니다. 의심할 수 있듯이 패키지 관리자가 알고 있는 구성만 제거합니다.
어떻게 해야 하나요?일하다? 패키지에는 구성 파일이 나열되어 있으며 그게 전부입니다. apache2
패키지가 설치되어 있으면 해당 구성 파일을 볼 수 있습니다 /var/lib/dpkg/info/apache2.conffiles
. 이 파일은 패키지 제거로 제거되지 않지만 패키지가 제거되면 제거됩니다. 나머지 패키지 내용은 에 나열되어 있습니다 /var/lib/dpkg/info/apache2.list
. 이는 패키지 삭제로 제거되는 내용입니다. (파일에 디렉터리가 포함되어 있는 것을 볼 수 있으며 .list
, 디렉터리가 비어 있는 경우에만 삭제됩니다.)
그 밖의 모든 항목은 삭제할 수 있는 시스템 관리자에게 "속합니다". 여기에는 최종적으로 작성된 추가 구성 파일이 포함됩니다.예를 들어아래의 새 파일 /etc/apache2/sites-available
과 아래의 모든 항목 에 가상 호스트가 있습니다 /var/www/html
.