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