패키지가 사전 설치되어 있는지 아니면 사용자가 설치했는지 알 수 있는 스크립트를 작성하려고 합니다.
또한 다음이 패키지 'X'의 종속성임을 알 수 있는 방법이 있습니까?
답변1
수준 에서는 rpm
실제로 알 수 없습니다. 사용하는 패키지 관리자에 따라 일부 정보가 저장되어 있을 수 있습니다.
이는 사용자가 를 사용하여 설치 명령을 실행한 경우에만 작동합니다 sudo
. 만약 그가 루트가 된다면, 누가 그랬는지 결코 알 수 없을 것입니다.
냠
yum history
트랜잭션 목록과 명령을 실행한 사용자를 제공합니다.
Dnf
dnf history
거래 목록을 제공하지만 기본적으로 사용자는 나열하지 않습니다. 그러나 다음을 실행할 수 있습니다.
dnf history info <ID>
그러면 명령을 실행한 사용자가 표시됩니다.
지퍼
이 afaik을 알 수 있는 방법이 없습니다.
답변2
태그가 불분명합니다. 어떤 패키지 관리자를 사용하는지 알 수 없습니다. 하지만 당신이 arch-linux 태그를 사용했기 때문에 나는 pacman에 대해 대답하겠습니다.
첫 번째 질문은 어려운 질문입니다. 제가 아는 한 실제로는 불가능하며 설치에 따라 크게 달라집니다. 다양한 배포판, 데스크톱 환경, 설치 프로그램 옵션 등이 있기 때문에 하나의 표준 Linux 설치는 없습니다. 그러나 한 가지 방법은 설정과 함께 설치된 패키지 그룹을 찾아 다른 패키지를 가져오는 것입니다(아마도 사용자가 설치) 다음 명령을 사용하여: comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)
여기서 base는 확실히 사전 설치된 그룹 중 하나입니다.
질문의 두 번째 부분: 다음을 사용하여 패키지에 대한 정보를 얻을 수 pacman -Si <yourpackage>
있으며 출력을 종속성으로 줄이려면 확인하십시오.이 스레드
답변3
배포판 웹사이트에서 설치 시 문제의 배포판에 포함된 패키지를 확인하세요. 이는 사전 설치되어 있습니다. 다른 모든 것은 인스타 이후에 추가되었습니다 ;;/