Estou tentando escrever um script onde possa saber se o pacote é pré-instalado ou foi instalado pelo usuário.
E também podemos saber que a seguir estão as dependências do pacote 'X'
Responder1
no rpm
nível que você realmente não pode saber. Dependendo do gerenciador de pacotes que você usa, algumas informações podem ser armazenadas nele.
Observe que isso só funciona se o usuário executou os comandos de instalação com sudo
. Se ele se tornou root, você nunca saberá quem fez isso.
Hum
yum history
fornece uma lista de transações e qual usuário iniciou o comando.
DNF
dnf history
fornece uma lista de transações, mas não lista o usuário por padrão. No entanto, você pode executar:
dnf history info <ID>
e então você verá o usuário que iniciou o comando
Zíper
não há como saber disso.
Responder2
Suas tags não estão claras, não sabemos qual gerenciador de pacotes você usa. Mas já que você usou a tag arch-linux vou responder pelo pacman.
Bem, a primeira pergunta é difícil, não é realmente possível, que eu saiba, e depende muito da sua instalação. Não existe uma instalação padrão do Linux, pois existem muitas distribuições, ambientes de desktop, opções de instalação diferentes,... Mas uma maneira seria procurar quais grupos de pacotes estão instalados com sua configuração e obter os outros (que provavelmente são para ser instalado pelo usuário) com o seguinte comando: comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)
onde base é um dos grupos que você tem pré-instalado com certeza.
Para a segunda parte da pergunta: Você pode obter informações sobre um pacote usando pacman -Si <yourpackage>
e se quiser que a saída seja reduzida apenas às dependências, confiraeste tópico
Responder3
Verifique os pacotes que acompanham a distro em questão no momento da instalação no site da distro. Esses estão pré-instalados; todo o resto foi adicionado post-insta;;/