Linux에서 시스템 패키지와 수동으로 설치된 패키지를 구별하는 방법이 있습니까?

Linux에서 시스템 패키지와 수동으로 설치된 패키지를 구별하는 방법이 있습니까?

패키지가 사전 설치되어 있는지 아니면 사용자가 설치했는지 알 수 있는 스크립트를 작성하려고 합니다.

다음이 패키지 "X"의 종속성임을 알 수 있는 방법이 있습니까?

답변1

rpm수준에서는 실제로 알 수 없습니다. 사용하는 패키지 관리자에 따라 일부 정보가 저장될 수 있습니다.

이는 사용자가 run install 명령을 사용하는 경우에만 작동합니다 sudo. 만약 그가 루트가 된다면, 누가 그런 짓을 했는지 결코 알 수 없을 것입니다.

yum history

트랜잭션 목록과 명령을 시작한 사용자를 제공합니다.

지하 감옥

dnf history

거래 목록을 제공하지만 기본적으로 사용자는 나열하지 않습니다. 하지만 다음을 실행할 수 있습니다.

dnf history info <ID>

그러면 명령을 시작한 사용자가 표시됩니다.

이것을 알 수 있는 방법이 없습니다.

답변2

귀하의 태그가 불분명하며 어떤 패키지 관리자를 사용하는지 알 수 없습니다. 하지만 당신은 arch-linux 태그를 사용했기 때문에 나는 pacman을 사용하여 대답하겠습니다.

글쎄요, 첫 번째 질문은 어려운 질문입니다. 제가 아는 한 그것은 실제로 가능하지 않으며 설치에 따라 많이 달라집니다. 다양한 배포판, 데스크탑 환경, 설치 프로그램 옵션이 있기 때문에 하나의 표준 Linux 설치는 없습니다. 그러나 한 가지 방법은 설정과 함께 어떤 패키지 그룹이 설치되어 있는지 확인하고 다음을 사용하여 (아마도 사용자 설치에 의해) 다른 패키지를 가져오는 것입니다. 다음 명령: comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)여기서 base는 사전 설치된 그룹 중 하나입니다.

질문의 두 번째 부분: 다음 명령을 사용하여 packages 에 대한 정보를 얻을 수 있습니다 pacman -Si <yourpackage>. 출력을 종속성으로 줄이려면 다음을 확인하세요.이 스레드

답변3

설치 시 해당 배포판에 포함된 패키지가 있는지 배포판 웹사이트를 확인하세요. 이것들은 사전 설치되어 있습니다. 다른 모든 것은 insta 다음에 추가됩니다.

관련 정보