Apt는 사용자가 소스에서 설치한 소프트웨어에 필요한 패키지를 제거할 수 있습니까?

Apt는 사용자가 소스에서 설치한 소프트웨어에 필요한 패키지를 제거할 수 있습니까?

쉬운리포지토리나 파일에서 *.deb설치된 패키지 간의 종속성을 처리합니다. 하지만 사용자가 ./configure && make && make install먼저 파일을 생성하지 않고 소스에서 컴파일하고 설치하는 .deb소프트웨어는 어떻습니까 ? 가능합니까?쉬운해당 소프트웨어에 필요한 패키지를 제거할 수 있습니까? 소스에서 소프트웨어를 설치하면 차이가 있습니까 /opt?/usr/local

답변1

apt그리고 dpkg패키지 관리 시스템 범위에 속하지 않는 다른 소프트웨어에 필요한 로컬에 설치된 소프트웨어를 제거하는 것도 절대적으로 가능합니다. 그러한 소프트웨어가 존재하는지 apt알 수 있는 방법은 전혀 없습니다 .dpkg

이러한 소프트웨어가 설치된 위치는 아무런 차이가 없습니다. 사용자의 홈 디렉터리(이 경우 시스템 관리자조차 그 존재를 인식하지 못할 수 있음) /opt에 있을 수도 있고 어디에나 있을 수도 있습니다./usr/local

기술적으로 는 다른 소프트웨어에 필요한 소프트웨어를 제거하는 apt것도 가능합니다.dpkg이후 소프트웨어가 이전 소프트웨어에 종속된다는 점을 선언하지 못하는 경우 패키지 관리 시스템의 일부입니다. 그러나 deb 패키지를 생성하는 프로세스에는 패키지 관리자가 이러한 종속성을 선언하는 것을 잊지 않도록 돕는 자동화가 포함됩니다.

답변2

APT는 수동으로 설치된 소프트웨어에 대해 아무것도 모릅니다. 소프트웨어에 어떤 라이브러리가 필요한지 또는 아무것도 알지 못합니다.

APT가 다른 패키지의 종속성을 충족하기 위해서만 패키지를 설치하는 경우 해당 패키지는 자동으로 설치된 것으로 표시됩니다. 자동으로 설치된 패키지에 의존하는 모든 패키지를 제거하면 해당 패키지를 실행할 때 해당 패키지가 제거됩니다 apt-get autoremove. APT에 대한 상위 수준 프런트엔드는 일반적으로 다른 유지 관리 후에 이 서비스를 제공합니다. 로컬에 설치된 소프트웨어에 필요한 패키지를 제거하지 않으려면 해당 패키지를 수동 설치로 표시하거나 aptitude 키를 표시하십시오.apt-mark manual PACKAGE-NAMEm

바이너리 실행 파일에 필요한 라이브러리 패키지를 찾으려면 를 실행하세요 ldd /path/to/executable. 포함된 각 줄에 대해 run을 실행하면 라이브러리가 포함된 패키지 이름이 표시됩니다. 스크립트의 경우 스크립트에서 사용하는 인터프리터를 표시합니다. 인터프리터가 설치된 상태로 유지되는지 확인하세요. 스크립트에서 사용하는 라이브러리를 찾는 것은 어려울 수 있으며 이를 수행하는 보편적인 방법은 없습니다./usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

배포에 존재하는 최신 버전의 패키지를 수동으로 설치한 경우 배포 패키지의 종속성을 검토하고 수동 설치로 표시하십시오.

관련 정보