Listar todos os pacotes:
equery list '*'
Se tiver um próximo, ele está instalado.
De: link
Estou trabalhando em um Chromebook. Como o Chrome OS é baseado no Gentoo, o sistema de gerenciamento de pacotes disponível no modo de desenvolvedor é o Portage. emerge é o comando a ser usado para instalar pacotes, mas é um comando muito complexo e difícil de entender e não tenho instruções claras sobre como fazer o que quero fazer.
Há duas coisas que eu quero ser capaz de fazer:
Em ambos os casos, o "nome" de um pacote é a string exata que substitui NAME no comando emerge NAME para instalar o pacote.
Eu escrevi o que penso ser uma solução para o primeiro e o que não foi realmente uma solução satisfatória para o segundo.
Este é o meu script para listar os pacotes instalados ( lipkgs ):
#!/bin/bash
cat /usr/local/var/lib/portage/world | sed "s/^.*\///" | sort
Este é o meu script para listar os pacotes disponíveis ( lapkgs ):
#!/bin/bash
cat /usr/local/portage/packages/Packages | grep "^CPV: " | sed "s/^CPV: .*\///g" | sort
Quando escrevi lapkgs pela primeira vez, achei que /usr/local/portage/packages/Packages era um tipo de arquivo em cache que contém todos os pacotes disponíveis em quaisquer repositórios que estejam configurados para serem conectados ao Portage. Meu primeiro problema com isso é que a saída contém nomes como xxd-1.10-r3 , que NÃO é o nome que eu digito para instalar xxd , mas sim o nome atual da revisão do pacote ou algo assim; esse nome vai var de pacote para pacote, então não há nenhum procedimento de propósito geral que eu possa escrever para limpá-los. Meu segundo problema, que percebi muito mais tarde, é que os nomes em /usr/local/portage/packages/Packages podem não ser uma lista de pacotes disponíveis, mas sim algum tipo de lista de pacotes instalados, bem como pacotes virtuais.
Como faço o que eu quero alcançar com certeza?
Tags portage chrome-os chrome-book