Próximo: , Anterior: , Acima: Gerenciamento de pacote   [Conteúdo][Índice]


5.5 Invocando guix locate

Há tantos softwares gratuitos por aí que, mais cedo ou mais tarde, você precisará procurar por pacotes. O comando guix search que vimos antes (veja Invocando guix package) permite pesquisar por palavras-chave:

guix search video editor

Às vezes, você deseja descobrir qual pacote fornece um determinado arquivo, e é aí que entra guix locate. Veja como você pode encontrar o comando ls:

$ guix locate ls
coreutils@9.1       /gnu/store/…-coreutils-9.1/bin/ls

É claro que o comando funciona para qualquer arquivo, não apenas para comandos:

$ guix locate unistr.h
icu4c@71.1          /gnu/store/…/include/unicode/unistr.h
libunistring@1.0    /gnu/store/…/include/unistr.h

Você também pode especificar padrões de globo com curingas. Por exemplo, aqui está como você procuraria pacotes que fornecem arquivos .service:

$ guix locate -g '*.service'
man-db@2.11.1        …/lib/systemd/system/man-db.service
wpa-supplicant@2.10  …/system-services/fi.w1.wpa_supplicant1.service

O comando guix locate depende de um banco de dados que mapeia nomes de arquivos para nomes de pacotes. Por padrão, ele cria automaticamente esse banco de dados, caso ele ainda não exista, percorrendo os pacotes disponíveis localmente, o que pode levar alguns minutos (dependendo do tamanho do seu armazém e da velocidade do seu dispositivo de armazenamento).

Nota: Por enquanto, guix locate constrói seu banco de dados baseado em conhecimento puramente local – o que significa que você não encontrará pacotes que nunca chegaram ao sue armazém. Eventualmente, ele suportará o download de um banco de dados pré-construído para que você possa encontrar mais pacotes.

Por padrão, guix locate primeiro tenta procurar um banco de dados de todo o sistema, geralmente em /var/cache/guix/locate; Se não existir ou for muito antigo, ele retornará ao banco de dados por usuário, por padrão em ~/.cache/guix/locate. Em um sistema multiusuário, os administradores podem querer atualizar periodicamente o banco de dados de todo o sistema para que todos os usuários possam se beneficiar dele, por exemplo, configurando package-database-service-type (veja package-database-service-type).

A sintaxe geral é:

guix locate [opções…] arquivo

... onde arquivo é o nome de um arquivo a ser pesquisado (especificamente, o "nome base" do arquivo: arquivos cujos diretórios pais são chamados arquivo não são correspondidos).

As opções disponíveis são as seguintes:

--glob
-g

Interprete arquivo… como padrões de globo—padrões que podem incluir caracteres curinga, como ‘*.scm’ para denotar todos os arquivos que terminam em ‘.scm’.

--stats

Exibir estatísticas do banco de dados.

--update
-u

Atualize o banco de dados dos arquivos.

Por padrão, o banco de dados é atualizado automaticamente quando é muito antigo.

--clear

Limpe o banco de dados e preencha-o novamente.

Esta opção permite começar de novo, garantindo que os dados antigos sejam removidos do banco de dados, o que também evita ter um banco de dados em constante crescimento. Por padrão, guix locate faz isso automaticamente periodicamente, embora com pouca frequência.

--database=arquivo

Use arquivo como banco de dados, criando-o se necessário.

Por padrão, guix locate escolhe o banco de dados em ~/.cache/guix ou /var/cache/guix, o que for mais recente.

--method=método
-m método

Use método para selecionar o conjunto de pacotes a serem indexados. Os valores possíveis são:

manifests

Este é o método padrão: ele funciona percorrendo perfis na máquina e gravando os pacotes que encontra – pacotes instalados por você ou por outros usuários da máquina, direta ou indiretamente. É rápido mas você pode perder outros pacotes disponíveis no armazém mas não referenciados por nenhum perfil.

store

Este é um método mais lento, porém mais exaustivo: verifica entre todos os pacotes existentes aqueles que estão disponíveis no armazém e os registra.


Próximo: Invocando guix gc, Anterior: Pacotes com múltiplas saídas, Acima: Gerenciamento de pacote   [Conteúdo][Índice]