Obtendo uma lista de nomes de pacotes que estão disponíveis para serem instalados no Portage

1

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:

  1. Relacione os nomes dos pacotes instalados.
  2. Relacione os nomes dos pacotes que podem ser instalados.

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?

    
por Melab 18.08.2017 / 03:18

1 resposta

0

Listar todos os pacotes: equery list '*'

Se tiver um próximo, ele está instalado.

De: link

    
por 18.08.2017 / 03:44